【问题标题】:How to hide GUI when mouse is over?鼠标悬停时如何隐藏 GUI?
【发布时间】:2019-09-10 22:45:45
【问题描述】:

我创建了一个简单的覆盖 GUI:

Gui +LastFound +AlwaysOnTop +ToolWindow -Caption

有时它后面有按钮,我希望在鼠标悬停时隐藏 GUI,以便我可以看到并单击它后面的按钮。当鼠标不再停留时,GUI 再次显示。

我真的无法通过谷歌搜索出一个简单的解决方案。你有什么想法吗?

【问题讨论】:

    标签: user-interface autohotkey show-hide mouseover


    【解决方案1】:

    我建议调整 Lexikos 对鼠标钩子所做的操作,以监控您的鼠标是否悬停在您的 GUI 所在的位置上。可能有更有效的解决方案(我也希望看到),但这肯定会奏效。

    https://autohotkey.com/board/topic/27067-mouse-move-detection/

    这里是示例代码 sn-p 以防链接损坏:

    #Persistent
    MouseHook := DllCall("SetWindowsHookEx", "int", 14  ; WH_MOUSE_LL = 14
        , "uint", RegisterCallback("MouseProc"), "uint", 0, "uint", 0)
    return
    
    MouseProc(nCode, wParam, lParam)
    {
        global MouseHook
        Critical
        if wParam = 0x200 ; WM_MOUSEMOVE
        {
            ToolTip % NumGet(lParam+0,0,"int") ", " NumGet(lParam+4,0,"int")
        }
        return DllCall("CallNextHookEx", "uint", MouseHook
                        , "int", nCode, "uint", wParam, "uint", lParam)
    }
    

    【讨论】:

    • 有没有正确使用的方法?我把它放在我的脚本中,gui 就消失了。我的鼠标总是有一个工具提示显示它的协调性。
    • @Ooker 这只是一个如何使用鼠标钩的例子。在您的情况下,您需要检查已知坐标(您的 GUI 位置加上大小),而不是制作工具提示并采取相应措施(Gui, HideGui, Show)。
    猜你喜欢
    • 2011-05-14
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2011-02-09
    相关资源
    最近更新 更多