adamski Posted January 25, 2009 Posted January 25, 2009 I want to be able to increase/decrease a number in an input box with the arrow up/down keys. The obvious way is to use a updown control - hidden as I don't want it displayed. The problem is that the $UDS_ARROWKEYS style causes the border of the input box to vanish on the side the updown control is. Is there a way around this or am I going to have to check for focus and then key presses in my own function? #include <EditConstants.au3> #include <UpDownConstants.au3> #include <GUIConstantsEx.au3> GUICreate("Up Down") ; Inputs $Input1 = GUICtrlCreateInput ( "0", 10, 10, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) $Input2 = GUICtrlCreateInput ( "0", 10, 40, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) $Input3 = GUICtrlCreateInput ( "0", 10, 70, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) $Input4 = GUICtrlCreateInput ( "0", 10, 100, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) ; UpDowns $UpDown1 = GUICtrlCreateUpDown($Input1, BitOR($UDS_ARROWKEYS, $UDS_WRAP)) GUICtrlSetLimit ( $UpDown1, 10 , 0) GUICtrlSetState ( $UpDown1, $GUI_HIDE ) $UpDown2 = GUICtrlCreateUpDown($Input2, $UDS_ARROWKEYS) GUICtrlSetLimit ( $UpDown2, 10 , 0) GUICtrlSetState ( $UpDown2, $GUI_HIDE ) $UpDown3 = GUICtrlCreateUpDown($Input3, BitOR($UDS_ARROWKEYS, $UDS_ALIGNLEFT)) GUICtrlSetLimit ( $UpDown3, 10 , 0) GUICtrlSetState ( $UpDown3, $GUI_HIDE ) $UpDown4 = GUICtrlCreateUpDown($Input4, $UDS_WRAP) GUICtrlSetLimit ( $UpDown4, 10 , 0) GUICtrlSetState ( $UpDown4, $GUI_HIDE ) GUISetState() ; Show GUI While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit WEnd
smashly Posted January 25, 2009 Posted January 25, 2009 You could set the Input box to have no border, then use a touch bigger colored label behind it.#include <EditConstants.au3> #include <UpDownConstants.au3> #include <GUIConstantsEx.au3> GUICreate("Up Down") GUICtrlCreateLabel("", 9, 9, 88, 16) GUICtrlSetBkColor(-1, 0x006699) GUICtrlSetState(-1, $GUI_DISABLE) $Input1 = GUICtrlCreateInput ( "0", 10, 10, 100, 14, BitOR($ES_RIGHT,$ES_NUMBER), 0) $UpDown1 = GUICtrlCreateUpDown($Input1, BitOR($UDS_ARROWKEYS, $UDS_WRAP)) GUICtrlSetLimit ( $UpDown1, 10 , 0) GUICtrlSetState ( $UpDown1, $GUI_HIDE ) GUISetState() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit WEnd
wolf9228 Posted January 25, 2009 Posted January 25, 2009 I want to be able to increase/decrease a number in an input box with the arrow up/down keys. The obvious way is to use a updown control - hidden as I don't want it displayed. The problem is that the $UDS_ARROWKEYS style causes the border of the input box to vanish on the side the updown control is. Is there a way around this or am I going to have to check for focus and then key presses in my own function? #include <EditConstants.au3> #include <UpDownConstants.au3> #include <GUIConstantsEx.au3> GUICreate("Up Down") ; Inputs $Input1 = GUICtrlCreateInput ( "0", 10, 10, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) $Input2 = GUICtrlCreateInput ( "0", 10, 40, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) $Input3 = GUICtrlCreateInput ( "0", 10, 70, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) $Input4 = GUICtrlCreateInput ( "0", 10, 100, 100, 20, BitOR($ES_RIGHT,$ES_NUMBER)) ; UpDowns $UpDown1 = GUICtrlCreateUpDown($Input1, BitOR($UDS_ARROWKEYS, $UDS_WRAP)) GUICtrlSetLimit ( $UpDown1, 10 , 0) GUICtrlSetState ( $UpDown1, $GUI_HIDE ) $UpDown2 = GUICtrlCreateUpDown($Input2, $UDS_ARROWKEYS) GUICtrlSetLimit ( $UpDown2, 10 , 0) GUICtrlSetState ( $UpDown2, $GUI_HIDE ) $UpDown3 = GUICtrlCreateUpDown($Input3, BitOR($UDS_ARROWKEYS, $UDS_ALIGNLEFT)) GUICtrlSetLimit ( $UpDown3, 10 , 0) GUICtrlSetState ( $UpDown3, $GUI_HIDE ) $UpDown4 = GUICtrlCreateUpDown($Input4, $UDS_WRAP) GUICtrlSetLimit ( $UpDown4, 10 , 0) GUICtrlSetState ( $UpDown4, $GUI_HIDE ) GUISetState() ; Show GUI While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit WEnd صرح السماء كان هنا
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