Retrieves information about the current tool
#include <GuiToolTip.au3>
_GUIToolTip_EnumTools ( $hTool, $iIndex )
$hTool | Handle to the ToolTip control (returned by _GUIToolTip_Create.) |
$iIndex | 0-based index of the tool for which to retrieve information |
Success: | an array with the following format: [0] - Flags that control the tooltip display. This member can be a combination of the following values: $TTF_IDISHWND = Indicates that $iID is the window handle to the tool instead of the ID $TTF_CENTERTIP = Centers the window below the tool specified by $iID $TTF_RTLREADING = Indicates that text will be displayed in the opposite direction $TTF_SUBCLASS = Indicates that the control should subclass the tool's window to intercept messages $TTF_TRACK = Positions the control next to the tool to which it corresponds $TTF_ABSOLUTE = Positions the window at the same coordinates provided by TTM_TRACKPOSITION $TTF_TRANSPARENT = Causes the control to forward mouse messages to the parent window $TTF_PARSELINKS = Indicates that links in the control text should be parsed [1] - Handle to the window that contains the tool ($hWnd) [2] - Identifier of the tool ($iID) [3] - X coordinate of the upper left corner of the rectangle [4] - Y coordinate of the upper left corner of the rectangle [5] - X coordinate of the lower right corner of the rectangle [6] - Y coordinate of the lower right corner of the rectangle [7] - Handle to the instance that contains the string resource for the tool [8] - Text for the tool [9] - Application-defined value associated with the tool |
Failure: | @error set (see remark) |
If $hWnd referenced control is not in the same process and both processes run in different AutoIt mode (@AutoItVersion), the @error is set to 6.
The Flags can be converted in a readable string with _GUIToolTip_BitsToTTF().
_GUIToolTip_GetCurrentTool, _GUIToolTip_GetToolInfo, _GUIToolTip_BitsToTTF
#include "Extras\HelpFileInternals.au3"
#include <GUIConstantsEx.au3>
#include <GUIToolTip.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Local $hGUI = GUICreate("ToolTip Enum Tool v(" & @AutoItVersion & ")", 450, 300, 100, 100)
; create a tooltip control using default settings
Local $hTooltip = _GUIToolTip_Create(0)
_MemoSetHandleInProcess($hTooltip)
Local $idButton = GUICtrlCreateButton("This is a button", 30, 32, 130, 28)
Local $hButton = GUICtrlGetHandle($idButton)
;~ $hGUI = 0 ; text not return
; add a tool to the tooltip control
_GUIToolTip_AddTool($hTooltip, $hGUI, "This is a ToolTip", $hButton)
_GUIToolTip_AddTool($hTooltip, $hGUI, "This is the GUI ToolTip", $hGUI)
GUISetState(@SW_SHOW)
; GetToolCount returns 2, but tools are numbered starting from zero (0), so we have to subtract 1
For $I = 0 To _GUIToolTip_GetToolCount($hTooltip) - 1
Local $aTool = _GUIToolTip_EnumTools($hTooltip, $I)
_MemoMsgBox($MB_SYSTEMMODAL, "Tooltip info for tooltip - #" & $I, "Flags: " & @TAB & _GUIToolTip_BitsToTTF($aTool[0]) & @CRLF & _
"HWnd: " & @TAB & "0x" & Hex($aTool[1]) & @CRLF & _
"ID: " & @TAB & "0x" & Hex($aTool[2]) & @CRLF & _
"Left X:" & @TAB & $aTool[3] & @CRLF & _
"Left Y:" & @TAB & $aTool[4] & @CRLF & _
"Right X:" & @TAB & $aTool[5] & @CRLF & _
"Right Y:" & @TAB & $aTool[6] & @CRLF & _
"Instance:" & @TAB & $aTool[7] & @CRLF & _
"Text:" & @TAB & $aTool[8] & @CRLF & _
"lParam:" & @TAB & $aTool[9])
Next
While 1
If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
; Destroy the tooltip control
_MemoResetHandleInProcess($hTooltip)
_GUIToolTip_Destroy($hTooltip)
GUIDelete($hGUI)
EndFunc ;==>Example
#include "Extras\HelpFileInternals.au3" #include <GUIToolTip.au3> Example() Func Example() Local $sFromTo Local $hWin = _MemoRunAU3OutProcess($sFromTo, False) ; OK same mode, KO if different mode _MemoCreateOutProcess($hWin, "Button", 2, $sFromTo) Local $hToolTip = _MemoGetHandleInProcess() _MemoWrite(">>> _GUIToolTip_GetToolCount() = " & _GUIToolTip_GetToolCount($hToolTip)) ; GetToolCount returns 2, but tools are numbered starting from zero (0), so we have to subtract 1 For $I = 0 To _GUIToolTip_GetToolCount($hToolTip) - 1 Local $aTool = _GUIToolTip_EnumTools($hToolTip, $I) If @error Then _MemoMsgBox($MB_ICONERROR, "Info" & $sFromTo, "_GUIToolTip_EnumTools()" & " @error = " & @error & @CRLF & _ @TAB & "cannot be enumerated from an external process" & @CRLF & _ @TAB & "running in different mode") ExitLoop Else ; only working if both processes are running in "same mode" _MemoWrite(">>> Tooltip info for tooltip - " & $I & @CRLF & _ "Flags: " & @TAB & _GUIToolTip_BitsToTTF($aTool[0]) & @CRLF & _ "HWnd: " & @TAB & "0x" & Hex($aTool[1]) & @CRLF & _ "ID: " & @TAB & "0x" & Hex($aTool[2]) & @CRLF & _ "Left X:" & @TAB & $aTool[3] & @CRLF & _ "Left Y:" & @TAB & $aTool[4] & @CRLF & _ "Right X:" & @TAB & $aTool[5] & @CRLF & _ "Right Y:" & @TAB & $aTool[6] & @CRLF & _ "Instance:" & @TAB & $aTool[7] & @CRLF & _ "Text:" & @TAB & $aTool[8] & @CRLF & _ "lParam:" & @TAB & $aTool[9]) EndIf Next _MemoMsgBoxStatus("", Default, $hWin) ; no more action, wait GUI for closing, close also OutProcess GUI EndFunc ;==>Example