- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/cseries/mfcreturnkeyshutdialog.htmlMFC回车键不关闭对话框以及变成TAB键效果之前在弄完这个十六进制字符串异或的工具后,发现直接按回车键就直接关闭了工具。网上搜了下解决方案,然后自己的总结如下4种方法:1 设置一个默认按钮(不推荐)如/cseries/studymfchexstrxortool1.html前文小节5中所述,只要将“进行异或”这个按钮属性中的Default Button设置为TRUE就行了。但是这样就直接触发这个按钮对应的事件OnBnClickedButton1,而不是对输入的数据进行合法性检查。2 比较推荐的是重载OnOK()函数或者PreTranslateMessage()函数首先我们需要找到这两个函数的位置,方法有两种,效果都是殊途同归:在类视图中点击对话框类(CHexStrXorDlg),然后在“属性”中点击菜单栏上的“重写”按钮,可以选择需要重写的函数。或者直接点击“项目”——“类向导”,“类名”选择对话框类(CHexStrXorDlg),点击“虚函数”就可以看到可以被重载的函数了,右侧是已经被重载了的函数。3 取消回车的效果通过重载OnOK()函数,然后函数体内不做任何处理,这样就可以直接屏蔽回车键的效果了。void CHexStrXorDlg::OnOK(){ //CDialog::OnOK(); return;}4 获取焦点位置,根据是否在Button按钮资源上做相应处理通过重载PreTranslateMessage()消息函数,可以改变MFC的消息控制流程,能自主处理键盘和鼠标消息。于是,先捕捉到回车键所在的控件焦点,然后判断是否是Button按钮。如果焦点在Button按钮上,则给资源ID为i的Button按钮发送点击消息,否则设置下一个控件得到输入焦点。BOOL CHexStrXorDlg::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 if ((pMsg-message == WM_KEYDOWN (int)pMsg-wParam == VK_RETURN)) { CWnd * wind = GetFocus(); if (wind) { //判断焦点是否在Button按钮上 char str[50]; CString ClassName = _T(Button); GetClassName(wind-m_hWnd, str, 50); if (ClassName == str) { UINT i = wind-GetDlgCtrlID(); SendMessage(WM_COMMAND, i, (LPARAM)wind-m_hWnd); return TRUE; } } //获取当前焦点所在控件的下一个控件的句柄 wind = GetNextDlgTabItem(GetFocus()); if (wind) { //设置下一个控件得到输入焦点 wind-SetFocus(); return TRUE; } } return CDialogEx::PreTranslateMessage(pMsg);}5 直接把回车键的效果替换成TAB键的效果同小节4中一样,先要获取焦点位置信息,但是直接将回车的效果替换成TAB键的效果。BOOL CHexStrXorDlg::PreTranslateMessage(MSG* pMsg){ if ((pMsg-message == WM_KEYDOWN (int)pMsg-wParam == VK_RETURN)) { //把回车效果替换成TAB键的切换效果 if( GetFocus-GetDlgCtrlID() != IDOK ) { pMsg-wParam = VK_TAB; } } return CDialogEx::PreTranslateMessage(pMsg);}
您可能关注的文档
- 2上《识字3》第一课时课案.doc
- 2中国知网期刊查证网页打印件查询步骤.doc
- 2图表公式和绘图制作要求与技巧.doc
- 300MWA卷.doc
- 3,20151125|10误区|离婚诉讼中的十大常见误区.doc
- 30题C语言.docx
- 31讲群落结构与演替学案.doc
- 3502运输顺槽回撤端头架过渡架安全技术措施.doc
- 31303末采封闭及综合措施.doc
- 40+64+40m连续梁预应力施工作业指导书.doc
- 企业管理领导力培训PPT课件.pptx
- 2023-2024学年山东省东营市东营区七年级(下)期末数学试卷(五四学制).pdf
- 2023-2024学年山东省德州五中七年级(下)开学英语试卷.pdf
- 2023-2024学年山东省东营市高一(下)期末生物试卷.pdf
- 2023-2024学年山东省东营市高一(下)期末语文试卷.pdf
- 梯田文化课件九上语文.pptx
- 2023-2024学年山东省东营市经开区四年级(下)期末语文试卷.pdf
- 2023-2024学年山东省东营市经开区五年级(下)期末语文试卷.pdf
- 2023-2024学年山东省东营市垦利区八年级(下)期末语文试卷(五四学制).pdf
- 卡姿兰美妆产品知识试卷含麦角硫因松蕈提取物考点.docx
文档评论(0)