iagman 0 Report post Posted April 1, 2009 I have two windows on my dialog box that accept numerical input from user. These are the only two items that I wish to be controlled via the Tab key on keyboard. I want to remove the tab stops from all other controls such as buttons and windows that show output data. I find a lot of stuff regarding tabs but nothing about removing tab stops. I've looked at everything inside Help that has the word TAB associated with it, but do not see or recognize a method of removing tab stops from controls so that they are no longer part of the tabbing order. Anyone know if this is possible? iagman Share this post Link to post Share on other sites
Authenticity 12 Report post Posted April 1, 2009 You can use _WinAPI_SetwindowLong(): #include <Constants.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> Dim $hGUI = GUICreate('Test', 230, 150) Dim $Input1 = GUICtrlCreateInput('', 10, 20, 200, 25) Dim $Input2 = GUICtrlCreateInput('', 10, 60, 200, 25) Dim $Buttons[3] For $i = 0 To 2 $Buttons[$i] = GUICtrlCreateButton('Button&' & $i+1, $i*70 + 10, 100, 60, 25) _WinAPI_SetWindowLong(GUICtrlGetHandle(-1), $GWL_STYLE, _ BitAND(_WinAPI_GetWindowLong(GUICtrlGetHandle(-1), $GWL_STYLE), BitNOT($WS_TABSTOP))) Next GUISetState() Do Sleep(20) Until GUIGetMsg() = -3 GUIDelete() Share this post Link to post Share on other sites
ProgAndy 66 Report post Posted April 1, 2009 (edited) To put it in a func: #include <Constants.au3> #include <WinAPI.au3> Func _ModifyStyle($hControl, $Style, $Remove = False) If Not IsHWnd($hControl) Then $hControl = GUICtrlGetHandle($hControl) Switch $Remove Case True Return _WinAPI_SetWindowLong($hControl, $GWL_STYLE, _ BitAND(_WinAPI_GetWindowLong($hControl, $GWL_STYLE), BitNOT($Style))) Case False Return _WinAPI_SetWindowLong($hControl, $GWL_STYLE, _ BitOR(_WinAPI_GetWindowLong($hControl, $GWL_STYLE), $Style)) EndSwitch EndFunc Edited April 1, 2009 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Share this post Link to post Share on other sites
iagman 0 Report post Posted April 1, 2009 I ran the code given by Authenticity. It made a dialog box with two windows, then I get error message. Don't understand your code well enough to solve the error. For the coded function, is this variable ($hControl) an example of one of the controls that will get the tabstop removed? The AND's and Or's make following the logic of what is happening difficult for me. Could you give me some pointers so I can understand better how to set up this function and weave it into my code? Thanks, guys, for your efforts. iagman Share this post Link to post Share on other sites
martin 68 Report post Posted April 1, 2009 I ran the code given by Authenticity. It made a dialog box with two windows, then I get error message. Don't understand your code well enough to solve the error.For the coded function, is this variable ($hControl) an example of one of the controls that will get the tabstop removed? The AND's and Or's make following the logic of what is happening difficult for me. Could you give me some pointers so I can understand better how to set up this function and weave it into my code?Thanks, guys, for your efforts.iagmanAuthenticity's example works fine for me. I'm using production version 3.3.0.0. What error message do you get?Prog@ndy's function has parameters-$hControl = the handle fo rthe control or the ID as returned by GuiCreate..$Style = the style to be added or removed from the control$Remove =True if the control must not have the style, False if the control must have the style. Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Share this post Link to post Share on other sites
iagman 0 Report post Posted April 1, 2009 Yes, you are right. I copied/pasted his code again and this time all went well. Even saw the three buttons I had not gotten before. Probably had a bad copy. Thanks for your notes. I'll work on it first thing tomorrow. I think I see what to do now. Being new, I sometimes think code examples are written in Japanese. iagman Share this post Link to post Share on other sites
martin 68 Report post Posted April 1, 2009 .. I sometimes think code examples are written in Japanese. iagman Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Share this post Link to post Share on other sites
iagman 0 Report post Posted April 2, 2009 The tabstops are now working as I had hoped thanks to the code you provided. I wonder why this simple feature isn't a parameter of a control as it is created instead of requiring such a long line of code? iagman Share this post Link to post Share on other sites