對於這個問題,大家應該都不陌生,寫於此只是進行了歸納總結,算是乙個備忘吧
定義快捷方式有下面幾種方法:
1.對於選單(menu)或者按鈕(button)
直接在選單或按鈕的標題中,包含&x即可,這裡x是任意字元鍵
示例:tool選單項的標題可以寫作:"&tool"或者"工具(&t)",這樣就可以直接用alt+t直接呼叫該選單項的功能
2.對選單(menu)
選單的另一種快捷鍵的定義方式是組合鍵或者虛擬鍵,如ctrl+o表示開啟檔案,或f5表示執行等
示例: 在file選單項的open字選單項的標題可以寫作:"&open\tctrl+o",這樣我們既可以用alt+o或ctrl+o來直接呼叫選單項的功能
3.另一種方式定義快捷鍵的就是自定義加速鍵
首先在資源檔案accelerator中新增快捷鍵資源 id選擇你要關聯選單項的名稱然後再設定你的快捷鍵
在.h檔案中加入乙個haccel haccel;
變數然後在oninitdialog或初始化中加入 haccel=::loadaccelerators(afxgetinstancehandle(),makeintresource(idr_menu_main)); idr_menu_main為加速鍵的資源檔名
最後在pretranslatemessage(msg* pmsg) 中加入:
if(::translateaccelerator(getsafehwnd(),haccel,pmsg))
return true;
這樣 以後只要在accelerator資源檔案中新增快捷鍵就可以了
注意: 新增快捷鍵的名字一定要與選單名稱一樣 這樣才能響應.現在只需要在此選單項中加入oncommand訊息的處理就可以了.
4.第二種自定義加速鍵的方法
還是在資源檔案accelerator中新增快捷鍵資源 id自己定義乙個.然後再設定你的快捷鍵.
在.h檔案中定義乙個快捷鍵物件haccel m_haccel;
變數然後在oninitdialog或初始化中加入 haccel=::loadaccelerators(afxgetinstancehandle(),makeintresource(idr_menu_main)); idr_menu_main為加速鍵的資源檔名
再新增pretranslatemessage訊息處理 在裡面加入以下**:
//儲存快捷鍵被啟用
if(m_haccel != null)
再新增oncommand訊息處理 加入以下**:
//響應加速鍵
switch(loword(wparam))
這種方式可以任意呼叫加速鍵
5.選單新增全域性快捷鍵,以對話方塊程式為例:
在oninitdialog中新增註冊熱鍵的**:
registerhotkey(getsafehwnd(),1001,null,vk_f2);//f2鍵
registerhotkey(getsafehwnd(),1002,mod_alt,'1');//alt+1鍵
在begin_message_map(c***dlg, cdialog)
...end_message_map()
中新增wm_hotkey的訊息對映:
on_message(wm_hotkey,&c***dlg::onhotkey)//快捷鍵訊息對映手動加入
在標頭檔案中新增onhotkey的宣告:
protected:
afx_msg lresult onhotkey(wparam wparam,lparam lparam);//手動加入.
cpp中onhotkey的實現**:
//相應快捷鍵的訊息對映
lresult c***dlg::onhotkey(wparam wparam,lparam lparam)
else if (wparam==1002)
return 0;
}關閉對話方塊時使用
unregisterhotkey(getsafehwnd(),1001);//登出f2鍵
unregisterhotkey(getsafehwnd(),1002);//登出alt+1鍵
登出熱鍵.
7.按鈕新增區域性快捷鍵可以直接在按鈕的標題中用 &+'x' 即可,則按下 ctrl + 'x' 即按下此按鈕,起到快捷鍵的作用,另外還可以學習選單新增區域性快捷鍵的第二種方式,在pretranslatemessage中新增處理函式,譬如:
bool cyourdlg::pretranslatemessage(msg* pmsg)
// switch (pmsg->wparam)
} break;
default: break;
} // switch (pmsg->message)
return (bhandledmsg ? true : cdialog::pretranslatemessage(pmsg));
}
VC程式設計增加快捷鍵的幾種方式
對於這個問題,大家應該都不陌生,寫於此只是進行了歸納總結,算是乙個備忘吧 定義快捷方式有下面幾種方法 1.對於選單 menu 或者按鈕 button 直接在選單或按鈕的標題中,包含 x即可,這裡x是任意字元鍵 示例 tool選單項的標題可以寫作 tool 或者 工具 t 這樣就可以直接用alt t直...
VC程式設計增加快捷鍵的幾種方式
對於這個問題,大家應該都不陌生,寫於此只是進行了歸納總結,算是乙個備忘吧 定義快捷方式有下面幾種方法 1.對於選單 menu 或者按鈕 button 直接在選單或按鈕的標題中,包含 x即可,這裡x是任意字元鍵 示例 tool選單項的標題可以寫作 tool 或者 工具 t 這樣就可以直接用alt t直...
在頁面上增加快捷鍵的支援
在reader專案中需要加上上下item的快捷鍵支援。現在貼下使用到的 你可以把事件onkeyup寫在body中,如果動態attache的話 是不是用document.body.nkeyup fucntion 的,你需要把時間attach到document上。另外 在firefox 和 ie下取on...