Function Reference


_GUIToolTip_GetToolInfo

Retrieves the information about a specific tool

#include <GuiToolTip.au3>
_GUIToolTip_GetToolInfo ( $hTool, $hWnd, $iID )

Parameters

$hTool Handle to the ToolTip control (returned by _GUIToolTip_Create.)
$hWnd Handle to the window that contains the tool
$iID Identifier of the tool, or Window handle of the control the tool is assigned to

Return Value

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
[2] - Identifier of the tool
[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: set @error (see remark)

Remarks

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().

Related

_GUIToolTip_EnumTools, _GUIToolTip_GetCurrentTool, _GUIToolTip_SetToolInfo, _GUIToolTip_ToolToArray, _GUIToolTip_BitsToTTF

Example

Example 1

#include "Extras\HelpFileInternals.au3"

#include <GUIConstantsEx.au3>
#include <GUIToolTip.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $hGUI = GUICreate("ToolTip Get ToolInfo v(" & @AutoItVersion & ")", 450, 300, 100, 100)

    ; create a tooltip control using default settings
    Local $hToolTip = _GUIToolTip_Create(0)
    _MemoSetHandleInProcess($hToolTip)

    Local $idButton = GUICtrlCreateButton("Button", 30, 32, 130, 28)
    Local $hButton = GUICtrlGetHandle($idButton)

;~  $hGUI = 0 ; no text
    ; add a tool to the tooltip control
    _GUIToolTip_AddTool($hToolTip, $hGUI, "This is a ToolTip", $hButton)

    GUISetState(@SW_SHOW)

    ; Display the information for the tool assigned to the button
    Local $aTool = _GUIToolTip_GetToolInfo($hToolTip, $hGUI, $hButton)
    _MemoMsgBox($MB_SYSTEMMODAL, "Tooltip info", "Flags: " & @TAB & _GUIToolTip_BitsToTTF($aTool[0]) & @CRLF & _
            "HWnd: " & @TAB & $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])

    ; Set the information for the tool assigned to the button
    _GUIToolTip_SetToolInfo($hToolTip, $aTool[1], $aTool[2], "New ToolTip", $aTool[0], $aTool[3], $aTool[4], $aTool[5], $aTool[6], $aTool[7], $aTool[9])
    $aTool = _GUIToolTip_GetToolInfo($hToolTip, $hGUI, $hButton)
    _MemoMsgBox($MB_SYSTEMMODAL, "Tooltip New info", "Flags: " & @TAB & _GUIToolTip_BitsToTTF($aTool[0]) & @CRLF & _
            "HWnd: " & @TAB & $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])

    While 1
        If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    ; Destroy the tooltip control
    _MemoResetHandleInProcess($hTooltip)
    _GUIToolTip_Destroy($hToolTip)
    GUIDelete($hGUI)
EndFunc   ;==>Example

Example 2 : ToolTip Get/Set ToolInfo to an External process

#include "Extras\HelpFileInternals.au3"

#include <GUIToolTip.au3>

Example()

Func Example()
    Local $sFromTo
    Local $hWin = _MemoRunAU3OutProcess($sFromTo, True) ; OK same mode, KO if different mode
    Local $hButton = _MemoCreateOutProcess($hWin, "Button", 2, $sFromTo)

    Local $hToolTip = _MemoGetHandleInProcess()

    Local $aTool = _GUIToolTip_GetToolInfo($hToolTip, $hWin, $hButton)
    If @error Then
        _MemoMsgBox($MB_ICONERROR, "Info" & $sFromTo, "_GUIToolTip_GetToolInfo()" & " @error = " & @error &  @CRLF & _
                @TAB & "cannot be accessed from an external process" & @CRLF & _
                @TAB & "running in different mode")
    Else
        ; only working if both processes are running in "same mode"
        _MemoWrite("<<< Tooltip info" & $sFromTo & @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])

        ; Set the information for the tool assigned to the button
        _GUIToolTip_SetToolInfo($hToolTip, $aTool[1], $aTool[2], ">>> New ToolTip", $aTool[0], $aTool[3], $aTool[4], $aTool[5], $aTool[6], $aTool[7], $aTool[9])
        $aTool = _GUIToolTip_GetToolInfo($hToolTip, $hWin, $hButton)
        _MemoWrite("<<< Tooltip New Set info" & $sFromTo  & @CRLF & _
                "Flags: " & @TAB & _GUIToolTip_BitsToTTF($aTool[0]) & @CRLF & _
                "HWnd: " & @TAB & $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

    _MemoMsgBoxStatus("", Default, $hWin) ; no more action, wait GUI for closing, close also OutProcess GUI

EndFunc   ;==>Example