Autohotkeyには、基本的にツールチップを含むテキストボックスを表示するために、どのGUIコントロールにフォーカスがあるかを検出する方法があります。
マウスにカーソルを合わせるか、キーボードを使用して、ツールチップに保存される内容を複数行のテキストボックスに移動して表示したいと思います。
ツールチップは必要ありません。
Autohotkeyには、基本的にツールチップを含むテキストボックスを表示するために、どのGUIコントロールにフォーカスがあるかを検出する方法があります。
マウスにカーソルを合わせるか、キーボードを使用して、ツールチップに保存される内容を複数行のテキストボックスに移動して表示したいと思います。
ツールチップは必要ありません。
OnMessage(0x0200, "WM_MOUSEMOVE") ; WM_MOUSEMOVE 0x0200
Return
WM_MOUSEMOVE(wParam, lParam)
{
global Control_Name
X := lParam & 0xFFFF
Y := lParam >> 16
MouseGetPos, , , , Control_Name
Tooltip, %Control_Name%, (x+150), (y+150)
}
Esc::ExitApp
とった!;-)
マウスが動くかどうか、またはコントロールにフォーカスがあり、テキストボックスに保存されている値が表示されるかどうかを確認します
#Persistent
SetTimer, WatchCursor, 100
return
WatchCursor:
MouseGetPos, mx, my, id, mouseControl
ControlGetFocus, currentFocus, A
if (SubStr(mouseControl,1,6)= "Button" OR SubStr(currentFocus,1,6)= "Button")
butIDkey := SubStr(currentFocus,7,2)
butIDmouse := SubStr(mouseControl,7,2)
if (SubStr(mouseControl,1,6)= "Button" && lastmx <> mx && lastmy <> my)
butID := butIDmouse
if (butIDkey <> lastControl)
butID := butIDkey
lastControl := butIDkey
lastmx := mx
lastmy := my
GuiControl,TemplateEngine:, MyTooltip, % Value%butID%
}
return
ControlGetFocusは、名前を取得するために使用されます。以下のサンプルコードを参照してください
a::
ControlGetFocus, OutputVar, A
if ErrorLevel
MsgBox, The target window doesn't exist or none of its controls has input focus.
else
MsgBox, Control with focus = %OutputVar%