最近沒事學習了下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...