gpt4 book ai didi

c++ - 锁定焦点并捕获到特定窗口

转载 作者:行者123 更新时间:2023-11-28 04:00:47 26 4
gpt4 key购买 nike

我可以使用切换机制调用 setfocus 和 setcapture,并在 OnLButtonDown 中确保消息不会继续传递,但这似乎在您左键单击时失败了。有什么办法可以保证捕获并获得焦点的窗口不放弃?

最佳答案

对于颜色选择器,请尝试阅读 this article从屏幕上的任何地方获取颜色。

This one是一个更完整的实用程序,让你做你想做的事。不同之处在于捕获组合键 [Alt+Ctrl+P] 上的停止点,您希望在单击时停止。

在第二个链接中,以下函数调用将对您有用:

SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
RegisterHotKey(m_hWnd, 0x1FEB, MOD_CONTROL | MOD_ALT, 0x50);

第一个使窗口保持事件状态,第二个注册 Alt+Ctrl+P(按下时窗口将接收 WM_HOTKEY 事件,此时您可以停止捕获颜色)。遗憾的是,您不能将 RegisterHotKey 与鼠标按钮一起使用。你会想看看SetWindowsHookEx

使用 SetWindowsHookEx,您可以确保您的应用程序即使在没有焦点的情况下也能接收事件。使用钩子(Hook)“WH_MOUSE”调用 SetWindowsHookEx,同时调用 Mouse Procedure。 .

在此过程中,您将收到鼠标消息,停止捕获鼠标移动的位置(锁定颜色),并使用 SetWindowPos 将窗口移至顶部。然后用 UnhookWindowsHookEx 注销你的钩子(Hook).

你可能需要学习很多东西,但我链接到你的所有 MSDN 页面都有大量信息可以帮助你解决问题,更不用说你是否愿意使用 key 解决问题了组合而不是第二个链接非常适合您。

希望对您有所帮助。

关于c++ - 锁定焦点并捕获到特定窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com