MFC中Enter键设置为“确定”的功能

来源:互联网 发布:php微信网页授权 demo 编辑:程序博客网 时间:2024/05/29 16:33

在新建的MFC的对话框中,按下回车时,系统会调用”默认“事件处理函数,也就是OnOK(),倘若你自己的CFormView子类或者CDialog子类没有重写OnOK()函数,则会调用父类的OnOK,其结果是关闭界面。要屏蔽Enter键退出的功能,只需要将在CDialog中重写ONOK()函数即可。而要实现默认为“确定”功能,下面两种方法供参考:

1.采用ClassWizard进行实现

     在类视图里面选择你要实现的类,右键属性,在属性里面找到函数PreTranslateMessage,然后添加PreranslateMessage的消息函数,在PreTranslateMessage的消息函数中添加你要实现“确定”功能的代码。

2.手动的添加PreTranslateMessage函数

    首先在你需要的对话框实现确定功能的的头文件中添加PreTranslateMessage的函数声明:

           virtual BOOLPreTranslateMessage(MSG* pMsg);

    然后在该对话框对应的*.CPP文件中添加PreTranslateMessage函数的实现代码即可。

   例如:

   BOOL  CSetIp::PreTranslateMessage(MSG*  pMsg)  

        {

               if(pMsg->message==WM_KEYDOWN   &&  pMsg->wParam==VK_RETURN)  

                   {  

                         intnControlID = GetFocus()->GetDlgCtrlID();//获取所有控件的ID

                        if(IDC_IPADDRESS1 == nControlID)

                        {

                            //IDC_IPADDRESS1是控件的ID

                         OnBnClickedEnter();//你要使用的Enter键所代替的函数

                       }

                   }  

            return   CDialog::PreTranslateMessage(pMsg); 

        }

原创粉丝点击