VC对话框控件不响应回车消息之解决方案
2011-04-12 11:26
204 查看
用IE浏览网页时回车就可提交信息,如:google搜索时填入搜索内容按回车键就可以提交
但在VC对话框里用webbrowser控件浏览网页时,按回车键就直接退出对话框程序了,
原因是对话框先截获回车消息,然后调用OnOK(),所以就退出了。
解决方法是重载PreTranslateMessage(MSG* pMsg)函数:
view plaincopy to clipboardprint?
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消息的方法
一、添加消息映射
view plaincopy to clipboardprint?
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_MESSAGE(DM_GETDEFID, &CMyDlg::OnGetDefID)
END_MESSAGE_MAP()
二、添加OnGetDefID函数定义
view plaincopy to clipboardprint?
LRESULT CMyDlg::OnGetDefID(WPARAM wParam, LPARAM lParam)
{
return MAKELONG(0, DC_HASDEFID);
}
重载WM_GETDEFID消息是从如下blog处看到的,http://blog.csdn.net/citysheep/archive/2010/11/04/5987969.aspx
还附上另外一篇讲处理回车转tab的处理方法http://www.wangchao.net.cn/bbsdetail_47936.html
但在VC对话框里用webbrowser控件浏览网页时,按回车键就直接退出对话框程序了,
原因是对话框先截获回车消息,然后调用OnOK(),所以就退出了。
解决方法是重载PreTranslateMessage(MSG* pMsg)函数:
view plaincopy to clipboardprint?
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消息的方法
一、添加消息映射
view plaincopy to clipboardprint?
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_MESSAGE(DM_GETDEFID, &CMyDlg::OnGetDefID)
END_MESSAGE_MAP()
二、添加OnGetDefID函数定义
view plaincopy to clipboardprint?
LRESULT CMyDlg::OnGetDefID(WPARAM wParam, LPARAM lParam)
{
return MAKELONG(0, DC_HASDEFID);
}
重载WM_GETDEFID消息是从如下blog处看到的,http://blog.csdn.net/citysheep/archive/2010/11/04/5987969.aspx
还附上另外一篇讲处理回车转tab的处理方法http://www.wangchao.net.cn/bbsdetail_47936.html
相关文章推荐
- VC对话框控件不响应回车消息之解决方案
- VC对话框中树形控件节点编辑响应回车事件完成编辑
- 有几个控件的操作时有关联关系,一个对话框中有多组这样的控件群,各个组中的控件的消息响应处理非常类似,以下提供解决方案
- VC中动态添加控件,并且响应控件的消息
- MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
- VC中控件或者对话框的鼠标离开消息
- 用directshow在对话框地某控件上绘制视频,导致对话框无消息响应了,为啥?
- 自绘CListCtrl控件中,使用了OnNMClick消息后,外界对话框中再使用时,不能响应消息
- 对话框中添加控件时,CMyDialog类中并没有CButton类的对象,却可以响应鼠标消息,为什么?
- VC线程中通过自 4000 定义消息引用对话框控件
- VC(在主对话框上捕获按钮等控件上的鼠标消息)
- vc2010的ActiveX开发ocx,控件内引入对话框,对话框上的按钮响应建立过程(一)
- VC++ 对话框程序响应键盘消息的处理方法的说明(非常重要)
- Edit 控件响应或处理 回车消息
- [控件使用]ASP.net 回车不响应的解决方案
- VC MFC 视图中控件响应CTRL+C等消息
- vc中的 drop down 类型的combo控件 如何响应回车事件
- VC中如何让子对话框响应最大化、最小化、关闭等系统消息
- VC中对话框程序不响应WM_CHAR WM_KEYUP \ WM_KEYDOWN消息
- MFC动态创建对话框中的按钮控件并创建其响应消息