关于控制焦点的工具提示啊

时间:2012-12-17 16:49:35

标签: autohotkey

在Autohotkey中,有没有办法检测gui控件的焦点,以便显示一个基本上是工具提示的文本框。

我想悬停鼠标或使用键盘导航并显示多行文本框中工具提示中存储的内容。

我不想要工具提示。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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%

答案 2 :(得分: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