監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

MFC 接收鍵盤輸入指令

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

  程序接收鍵盤輸入并作出相應(yīng)的反饋是一個(gè)非常常見的功能,在MFC中提供了WM_KEYDOWN,WM_KEYUP這些消息來(lái)反便我們進(jìn)行編程,但是這是在窗體沒有其他控件的情況下才適用的。當(dāng)有其他控件時(shí),其他控件(其實(shí)也是窗體)肯定會(huì)有一個(gè)獲得焦點(diǎn)使得這些消息失效,我們可以通過重載對(duì)話框程序的PreTranslateMessage(MSG* pMsg)虛函數(shù)來(lái)實(shí)現(xiàn)這一功能。

  首先在對(duì)話框類中先聲明下:

[cpp]view plaincopy

  

  •   BOOLPreTranslateMessage(MSG*pMsg);

  • 然后就可以直接對(duì)鍵盤消息進(jìn)行處理了,示例如下:

[cpp]view plaincopy

  

  •   BOOLDlg::PreTranslateMessage(MSG*pMsg)//Dlg為對(duì)話框類

  • {

  •   if(pMsg->message==WM_KEYDOWN)

  • {

  •   switch(pMsg->wParam)

  • {

  •   caseVK_UP:

  •   printf("UPn");break;

  •   caseVK_DOWN:

  •   printf("DOWNn");break;

  •   caseVK_LEFT:

  •   printf("LEFTn");break;

  •   caseVK_RIGHT:

  •   printf("RIGHTn");break;

  •   default:

  •   break;

  • }

  • }

  •   returnCDialog::PreTranslateMessage(pMsg);

  • }

  • 由上述的代碼也可以發(fā)現(xiàn),我們不僅僅可以響應(yīng)鍵盤消息,只要愿意,可以自己在這里定義一個(gè)消息循環(huán)來(lái)處理想做的事。

發(fā)布:2007-04-07 16:32    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:

泛普微信營(yíng)銷軟件其他應(yīng)用

微營(yíng)銷 微信推廣 微信營(yíng)銷軟件 微信二維碼 微信商城 微信支付 微信開店 微信公眾平臺(tái) 微信公眾號(hào) 微信公眾平臺(tái)登錄 微信怎么玩 微信認(rèn)證 下載微信到手機(jī) 手機(jī)微信 微信官網(wǎng) 微信網(wǎng)頁(yè)版 電腦微信 微信電腦版 微信公眾平臺(tái)注冊(cè) 微信注冊(cè) 微信公眾號(hào)申請(qǐng)