MFC回车事件

时间:2023-03-08 18:31:21

这是一个使用MFC开发关于设备控制的windows应用程序

通过该项目我学到的内容:

继承的好处

应用程序的界面是与应用程序的代码有一定的对应关系的,界面中不同的控件对应不同的类,首先就是需要一个对话框,那么在资源文件里有了对话框之后,与对话框ID之对应的源文件中会有一个继承于对话框的类,之所以能够在这个对话框上随意添加删除或者修改其中的某些子窗口正是因为这种继承关系,可以在继承的基础上对原来的东西进行丰富。

 

界面与代码的关系

界面上的控件或控件的内容一般都与代码中的变量是对应着的,如果要使界面中的值传递给用于保存它的变量,则需要使用UpdateData();同样,当需要界面及时展示其对应变量最新的值,需要使用UpdateData(FALSE);。UpdateData()更新数据,其中的参数TRUE或FALSE决定了更新的方式是界面向变量传值还是变量向界面传值。

当应用程序运行起来的时候不同的事件会触发不同的消息,应用程序内部通过接收到的消息决定自己该去执行哪一个方法。这里使用类向导是一个最好的选择,减少错误,提高速度。类向导能解决的问题最好使用类向导去解决,这会减少失误。

多线程

假如你因一件事一直脱不开身,这个时候就需要来一个帮手,程序也是这样,当有些特定的需要,比如音乐播放器,聊天软件等。在播放音乐的时候之所以还能进行浏览歌曲列表等其他操作,我想这里就用到多线程。

如何响应回车事件

在类中找到PreTranslateMessage(MSG* pMsg)虚函数,然后

{

if(pMsg->message==WM_KEYDOWN)//键盘按下?

{

if(pMsg->wParam==VK_RETURN)//是回车键?

{

//响应事件

/*如何编写在指定的编辑框中响应回车事件

步骤

1-选中指定编辑框右键打开类向导

2-选中指定编辑框的ID对应的EN_SETFOCUS消息,添加处理程序并编辑代码

3-可以定义一个类成员变量,在获得焦点的对应处理函数中,给定义的变量一个特殊的值。*/

if(条件){...};

}

if(pMsg->wParam==...){...};

}

}

如果不重载OnOK会导致回车关闭窗口。

void CClistBox_testDlg::OnOK()

{

if(条件)

{

Code;

}

}