日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC对话框中处理Enter或Esc按键事件方法

發(fā)布時(shí)間:2023/12/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC对话框中处理Enter或Esc按键事件方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?建立好的MFC的對(duì)話框,按下Enter或Esc時(shí),系統(tǒng)會(huì)調(diào)用”默認(rèn)“事件處理函數(shù),也就是OnOK(),倘若自己的CFormView子類或者CDialog子類沒有重寫OnOK()函數(shù),則會(huì)調(diào)用父類的OnOK,其結(jié)果是關(guān)閉界面。要屏蔽Enter鍵或Esc退出的功能,只需要將在CDialog中重寫ONOK()函數(shù)即可。而要實(shí)現(xiàn)默認(rèn)為“確定”功能,下面兩種方法供參考:

1.采用ClassWizard進(jìn)行實(shí)現(xiàn)重載OnOK()

?OnOK()

{

?????????if(...)

?????????{// 當(dāng)是Enter或Esc按鍵事件時(shí)

???????????.....

?????????}

?????????else

?????????{???// 點(diǎn)擊關(guān)閉按鈕時(shí)

???????????????????....

???????????????????CDialog::OnOK();

?????????}

}

2.采用ClassWizard進(jìn)行實(shí)現(xiàn)重載PreTranslateMessage

?????在類視圖里面選擇你要實(shí)現(xiàn)的類,右鍵屬性,在屬性里面找到函數(shù)PreTranslateMessage,然后添加PreranslateMessage的消息函數(shù),在PreTranslateMessage的消息函數(shù)中添加你要實(shí)現(xiàn)處理按鍵事件的代碼。

/********************************************************
* 方法名稱: PreTranslateMessage(MSG *pMsg)
* 描述: 該方法主要是處理傳遞消息的,任何消息產(chǎn)生的消息都會(huì)經(jīng)過這個(gè)方法處理,
* 然后,消息才會(huì)到達(dá)相應(yīng)的應(yīng)用程序中。
* 調(diào)用模塊:CDialogEx::PreTranslateMessage(pMsg)父類的對(duì)應(yīng)方法?
* 輸入: MSG類型的消息對(duì)象指針
* 輸出: 無
* 返回值: bool值
*********************************************************/
BOOL CSerialDlg::PreTranslateMessage(MSG* pMsg)
{
?? ?// TODO: Add your specialized code here and/or call the base class
?? ?// 把Esc和Enter按鍵事件消息過濾掉,否則該消息會(huì)導(dǎo)致對(duì)應(yīng)應(yīng)用程序調(diào)用OnOK()方法,結(jié)束應(yīng)用程序
?? ?if (pMsg->message == WM_KEYDOWN)
?? ?{
?? ??? ?switch(pMsg->wParam)
?? ??? ?{
?? ??? ??? ?case VK_ESCAPE: //Esc按鍵事件
?? ??? ??? ??? ?return true;
?? ??? ??? ?case VK_RETURN: //Enter按鍵事件
?? ??? ??? ??? ?return true;
?? ??? ??? ?default:
?? ??? ??? ??? ?;
?? ??? ?}
?? ?}
?? ?
?? ?return CDialogEx::PreTranslateMessage(pMsg);
}


原文:https://blog.csdn.net/leichelle/article/details/7991371/?
?

總結(jié)

以上是生活随笔為你收集整理的MFC对话框中处理Enter或Esc按键事件方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。