簡體   English   中英

將焦點鎖定並捕獲到特定窗口

[英]Locking focus and capture to a specific window

我可以使用切換機制調用setfocus和setcapture,並在OnLButtonDown中確保消息不會繼續傳遞,但這似乎在您單擊鼠標左鍵時失敗。 有什么方法可以確保具有捕獲和焦點的窗口不會放棄它?

對於顏色選擇器,請嘗試閱讀本文,以了解如何從屏幕上的任何位置獲取顏色。

是一個更完整的實用程序,讓您隨心所欲。 不同之處在於,您要在單擊組合鍵[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,您可以確保應用程序即使沒有焦點也將接收事件。 調用帶有鈎子“ WH_MOUSE”的SetWindowsHookEx,以及一個Mouse Procedure

在此過程中,您將獲得鼠標消息,停止捕獲鼠標移動的位置(鎖定顏色),並使用SetWindowPos將窗口移至頂部。 然后使用UnhookWindowsHookEx注銷您的鈎子。

這可能是您可能需要學習的很多知識,但是我鏈接到的所有MSDN頁面都包含大量信息,這些信息應該可以為您提供幫助,更不用說您是否願意使用按鍵組合了,第二個鏈接非常適合您。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM