重寫defwndproc事件
#region window 訊息捕獲const
int wm_copydata = 0x004a
;
public
struct
copydatastruct
[dllimport(
"user32")]
public
static
extern
bool changewindowmessagefilter(uint msg, int
flags);
protected
override
void defwndproc(ref
system.windows.forms.message m)
+ " " + m.msg.tostring());
}
#endregion window 訊息捕獲
重寫wndproc事件
//註冊熱鍵的api
[dllimport("
user32")]
public
static
extern
bool registerhotkey(intptr hwnd, int id, uint
control, keys vk);
//解除註冊熱鍵的api
[dllimport("
user32")]
public
static
extern
bool unregisterhotkey(intptr hwnd, int
id);
private frmhotkeytest testfrm = null
;
private
void showtestfrm(string
_text)
protected
override
void wndproc(ref
message m)
else
if (m.wparam.tostring() == "
456") //
按下ctrl+w顯示
else
if (m.wparam.tostring() == "
103"
)
else
if (m.wparam.tostring() == "
102"
)
else
if (m.wparam.tostring() == "
101"
)
else
if (m.wparam.tostring() == "
100"
)
break
; }
base.wndproc(ref
m); }
在**wndproc方法中,根據訊息編碼判斷各種快捷鍵**處理即可
例如:
if (m.wparam.tostring() == "123") //
按下ctrl+q隱藏
C 註冊熱鍵 快捷鍵
熱鍵是全域性的,使用 api 註冊。快捷鍵是區域性的,不使用 api 只能在視窗啟用的時候使用。include include using namespace std intmain if 0 registerhotkey null,2 mod control,vk f2 訊息迴圈 msg msg ...
C 註冊系統熱鍵
簡單點說就是為程式制定快捷鍵勒。很多軟體都帶熱鍵功能的,通過以下方式可以實現2個鍵或3個鍵的快捷鍵,相當之實用,具體實現方法看後文吧。先引用using system.runtime.interopservices 的命名空間,然後在合適的位置加上如下 就ok。注意 form1 load和form1 ...
C 註冊系統熱鍵
引用using system.runtime.interopservices 命名空間 dllimport user32 public static extern bool registerhotkey intptr hwnd,int id,uint control,keys vk 註冊熱鍵的api...