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.linksj.com/contact/20151229/n7405.html