2

Autohotkeyには、基本的にツールチップを含むテキストボックスを表示するために、どのGUIコントロールにフォーカスがあるかを検出する方法があります。

マウスにカーソルを合わせるか、キーボードを使用して、ツールチップに保存される内容を複数行のテキストボックスに移動して表示したいと思います。

ツールチップは必要ありません。

4

3 に答える 3

1
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
于 2020-04-17T10:08:14.253 に答える
0

とった!;-)

マウスが動くかどうか、またはコントロールにフォーカスがあり、テキストボックスに保存されている値が表示されるかどうかを確認します

#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
于 2012-12-17T18:13:48.387 に答える
0

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%
于 2012-12-17T17:14:09.457 に答える