C 獲取視窗控制代碼,給視窗設定全域性熱鍵

2022-01-22 05:46:58 字數 921 閱讀 8427

最近沒事學習了下c++,用mfc做了乙個小程式:點選應用程式視窗獲取程式控制程式碼,給應用程式設定全域性熱鍵,隱藏程式。

思路:1. 截獲滑鼠點選事件。

2. 獲取點選的視窗控制代碼。

3. 設定全域性熱鍵。

4. 響應熱鍵的事件。

實現:1. 截獲滑鼠點選事件。

使用setcapture()將所有的滑鼠訊息據為己有。在捕獲過程中,你卻無法對其他的滑鼠訊息做出反應。releasecapture()可以釋放捕獲的滑鼠訊息。

還有其他的捕獲滑鼠的方法,可以參看:

2. 獲取點選的視窗控制代碼。

先通過bool getcursorpos(lppoint lppoint)獲取滑鼠點選在螢幕上的座標,再使用win32 api函式:hwnd windowfrompoint(point& point),得到當前視窗的控制代碼。

3. 設定全域性熱鍵。    

//

獲取當前視窗控制代碼

hwnd handle =getsafehwnd();

//得到熱鍵的唯一標識

int hotkeyid = globaladdatom('

myhotkey

');

//註冊全域性熱鍵alt + f8

registerhotkey(handle,hotkeyid,mod_alt, vk_f8);

登出熱鍵的方法:  

unregisterhotkey(handle, hotkeyid); //

登出hotkey, 釋放資源。

4. 響應熱鍵的事件。

我重寫了窗體的pretranslatemessage事件,已達到響應熱鍵訊息的目的。

return

cdialog::pretranslatemessage(pmsg);

}

獲取視窗控制代碼

在windows中,控制代碼是乙個系統內部資料結構的引用。例如當你操作乙個視窗,或說是乙個delphi窗體時,系統會給你乙個該視窗的控制代碼,系統會通知你 你正在操作142號視窗,就此你的應用程式就能要求系統對 142號視窗進行操作 移動視窗 改變視窗大小 把視窗最小化等等。實際上許多windows...

獲取視窗控制代碼

afxgetmainwnd afxgetmainwnd獲取自身視窗控制代碼 hwnd hwnd afxgetmainwnd m hwnd gettopwindow 函式功能 該函式檢查與特定父視窗相聯的子視窗z序 z序 垂直螢幕的方向,即疊放次序 並返回在z序頂部的子視窗的控制代碼。函式原型 hwn...

MFC 視窗控制代碼獲取

控制代碼獲取方法 獲取該視窗的控制代碼後,即可向該視窗類類傳送訊息 處理程式 0。獲取所在類視窗的控制代碼 this m hwnd 1。主視窗的控制代碼 無論在主視窗類內,還是子視窗類內,獲取主視窗控制代碼的方法 afxgetmainwnd m hwnd,如 sendmessage afxgetma...