VC中回車或ESC會關閉窗體
作者:佚名 時間:2012-11-14 分享到:
解決方法是重載PreTranslateMessage(MSG* pMsg)函數:
- BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
- {
- if((pMsg->message == WM_KEYDOWN)&&(pMsg->wParam == VK_RETURN))
- {
- return false;
- }
- return CDialog::PreTranslateMessage(pMsg);
- }
前段時間又碰到個類似的問題,回車是不關閉對話框了,還能提交表單,但有些網頁在輸入完回車后響應的是tab鍵,如:
登錄界面,輸入用戶名后回車,光標會跳至密碼輸入框!用這種方法就比較麻煩了,這時還是重載WM_GETDEFID消息比較好!
注意:!!!!!重載了WM_GETDEFID消息就不要重載PreTranslateMessage了!!!!!
下面是重載WM_GETDEFID消息的方法
一、添加消息映射
二、添加OnGetDefID函數定義
- LRESULT CMyDlg::OnGetDefID(WPARAM wParam, LPARAM lParam)
- {
- return MAKELONG(0, DC_HASDEFID);
- }
- BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
- ON_MESSAGE(DM_GETDEFID, &CMyDlg::OnGetDefID)
- END_MESSAGE_MAP()
如沒特殊注明,文章均為上海聯楷網絡原創,轉載請注明來自:http://www.ktcbnqb.cn/contact/20151229/n7405.html