valdemar1977 Posted August 25, 2015 Posted August 25, 2015 (edited) Hello!Is anybody know easy way to assign accelerator for checkbox?It is easy to work with buttons, but with checkbox button it doesn't work in my case. Thank you for any assistance. Edited August 25, 2015 by valdemar1977
Moderators Melba23 Posted August 25, 2015 Moderators Posted August 25, 2015 valdemar1977,Accelerator keys seem to work fine with checkboxes for me:#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> $hGUI = GUICreate("Test", 500, 500) $cButton = GUICtrlCreateButton("Test", 10, 10, 80, 30) $cCheck = GUICtrlCreateCheckbox("Test", 10, 100, 200, 20) GUISetState() Local $aAccelKeys[2][2] = [["^b", $cButton], ["^c", $cCheck]] GUISetAccelerators($aAccelKeys) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $cButton MsgBox($MB_SYSTEMMODAL, "Button", "Pressed") Case $cCheck If GUICtrlRead($cCheck) = 1 Then MsgBox($MB_SYSTEMMODAL, "Checkbox", "Checked") Else MsgBox($MB_SYSTEMMODAL, "Checkbox", "Unchecked") EndIf EndSwitch WEndOr is that not what you meant?M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
kylomas Posted August 25, 2015 Posted August 25, 2015 ditto...#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #AutoIt3Wrapper_Add_Constants=n local $gui010 = guicreate('',400,400) local $chk010 = guictrlcreatecheckbox('CheckBox',10,10,380,380, $BS_PUSHLIKE) guisetstate() Local $aAKeys[1][2] = [["{ENTER}", $chk010]] GUISetAccelerators($aAKeys) while 1 switch guigetmsg() case $gui_event_close Exit case $chk010 guictrlsetstate($chk010,( guictrlread($chk010) = 1) ? $gui_unchecked : $gui_checked) consolewrite( (guictrlread($chk010) = 1 ? 'button checked' : 'button not checked') & @LF) EndSwitch WEndM23 beat me to it again!!! Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
valdemar1977 Posted August 26, 2015 Author Posted August 26, 2015 (edited) @Melba23, @kylomas thank you for reply.@kylomas, are you try to push button with mouse? In my case it is easy to setup push button with reaction on mouse click or on accelerator key, but not for both.@Melba23, in your example it is possible to change state of checkbox with mouse, but not with accelkey.Idea is that button need to change state on accelerator key and on mouse click.expandcollapse popup#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> Example() Func Example() ; Create a GUI with various controls. Local $hGUI = GUICreate("Example", 300, 200) Dim $aAccelKeys[1][2] ; Create a checkbox control. Local $idCheckbox = GUICtrlCreateCheckbox("Button Checkbox", 10, 10, 185, 25,BitOR($WS_GROUP, $BS_PUSHLIKE, $BS_AUTOCHECKBOX, $BS_BITMAP,$WS_TABSTOP)) Local $idClose = GUICtrlCreateButton("Close", 210, 170, 85, 25) $aAccelKeys[0][0] = "^i" $aAccelKeys[0][1] = $idCheckbox GUISetAccelerators($aAccelKeys) ; Display the GUI. GUISetState(@SW_SHOW, $hGUI) ; Loop until the user exits. While True Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idClose ExitLoop Case $idCheckbox If _IsChecked($idCheckbox) Then MsgBox($MB_SYSTEMMODAL, "", "The checkbox is checked.", 0, $hGUI) Else MsgBox($MB_SYSTEMMODAL, "", "The checkbox is not checked.", 0, $hGUI) EndIf EndSwitch WEnd ; Delete the previous GUI and all controls. GUIDelete($hGUI) EndFunc ;==>Example Func _IsChecked($idControlID) Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_IsChecked Edited August 26, 2015 by valdemar1977
kylomas Posted August 26, 2015 Posted August 26, 2015 Try this...#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #AutoIt3Wrapper_Add_Constants=n local $gui010 = guicreate('',400,400) local $chk010 = guictrlcreatecheckbox('CheckBox',10,10,380,380, $BS_PUSHLIKE) local $dummy_chk = guictrlcreatedummy() guisetstate() Local $aAKeys[1][2] = [["{ENTER}", $dummy_chk]] GUISetAccelerators($aAKeys) while 1 switch guigetmsg() case $gui_event_close Exit case $dummy_chk guictrlsetstate($chk010,( guictrlread($chk010) = 1) ? $gui_unchecked : $gui_checked) ConsoleWrite('actioned by enter key' & @LF) case $chk010 ConsoleWrite('actioned by mouse' & @CRLF) EndSwitch WEndIs this what you are looking for???kylomas Forum Rules Procedure for posting code "I like pigs. Dogs look up to us. Cats look down on us. Pigs treat us as equals." - Sir Winston Churchill
valdemar1977 Posted August 26, 2015 Author Posted August 26, 2015 @kylomas, thank you. I'm forget about dummy
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now