WinForm程式 註冊熱鍵快捷鍵切換

2022-01-14 13:32:41 字數 1711 閱讀 4642

重寫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...