atzoref Posted January 8, 2012 Share Posted January 8, 2012 Hi,Returns the handle for a control and some special (item) handles (Menu, ContextMenu, TreeViewItem). What is the meaning of the "Handle" here?Thanks Link to comment Share on other sites More sharing options...
jaberwacky Posted January 8, 2012 Share Posted January 8, 2012 Returns the identifier that Windows uses to keep track of the control is my best understanding. Helpful Posts and Websites: AutoIt3 Variables and Function Parameters MHz | AutoIt Wiki | Using the GUIToolTip UDF BrewManNH | Can't find what you're looking for on the Forum? Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted January 8, 2012 Moderators Share Posted January 8, 2012 atzoref,A "handle" is the unique number allocated by Windows to everthing it creates. It is different from the "ControlID" returned by controls created by Autoit's native functions, although many UDF functions do return handles. Here is a script to show you:#include <GUIConstantsEx.au3> #include <GUIButton.au3> $hGUI = GUICreate("Test", 500, 500) $hButton_1 = GUICtrlCreateButton("Test 1", 10, 10, 80, 30) $hButton_2 = _GUICtrlButton_Create($hGUI, "Test 2", 10, 100, 80, 30) GUISetState() MsgBox(0, "Results", "GUI handle = " & $hGUI & @CRLF & @CRLF & "Test 1 ControlID = " & $hButton_1 & @CRLF & @CRLF & "Test 2 handle = " & $hButton_2) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEndYou can usually deal with AutoIt controls using the ControID - handles tend to be needed for DllCalls and the like.Please ask if you have any more questions - although I am preparing a big lunch at the moment and it might be a while before I get back to you. 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 Link to comment Share on other sites More sharing options...
atzoref Posted January 9, 2012 Author Share Posted January 9, 2012 Thanks for your best helpful answer. It's OK for now. Link to comment Share on other sites More sharing options...
atzoref Posted January 9, 2012 Author Share Posted January 9, 2012 A little question I still don't understand Why do I prefer to deal with those handles above controlID? There is an advantage by using it? Link to comment Share on other sites More sharing options...
guinness Posted January 9, 2012 Share Posted January 9, 2012 Why do I prefer to deal with those handles above controlID? There is an advantage by using it?I personally wouldn't think like that, you should be thinking more on the lines of 'What suits my requirements.' For example if you just need a button then GUICtrlCreateButton which be an obvious choice rather than _GUICtrlButton_Create, as you would then have to start using WM_ Messages (see Helpfile) to monitor when the button is selected whereas using the simple GUIGetMsg would alleviate all of this. ControlIDs are used with native AutoIt controls for example GUICtrlSetData or monitoring when an event happens with GUIGetMsg. Whereas handles you tend to use with the UDF functions (as Melba23 mentioned) because these work directly with Windows which uses handles. Example to find the ControlID of a handle, but only if the control was created by using a native function. #include <GUIConstantsEx.au3> #include <WinAPI.au3> Example() Func Example() GUICreate("Test", 500, 500) Local $iButton_1 = GUICtrlCreateButton("Test 1", 10, 10, 80, 30) ; Create a button and store the ID to a variable. Local $hButton_1 = GUICtrlGetHandle($iButton_1) ; Find the handle. GUISetState() MsgBox(4096, "", "The ControlID is: " & $iButton_1 & @CRLF & _ "The hWnd (handle) is: " & $hButton_1 & @CRLF & _ "The ControlID using the hWnd (handle) value is: " & _WinAPI_GetDlgCtrlID($hButton_1)) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $iButton_1 Exit EndSwitch WEnd EndFunc ;==>Example UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
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