本文共 1356 字,大约阅读时间需要 4 分钟。
在MFC编程中,对话框和控件等组件会在特定操作时触发各种消息。例如,按钮的点击事件会产生BN_CLICKED消息,编辑框内容修改时会产生EN_CHANGE消息等。这些消息最终由对应的消息处理函数处理。要实现特定操作的功能,我们需要为这些消息定义并实现相应的处理函数。
以加法计算器程序为例,以下是为“计算”按钮添加消息处理函数的四种方法:
对于熟悉VC++ 6.0的开发者来说,Class Wizard是一个非常有用的工具。它可以帮助我们快速添加消息处理函数。在VS2010中,Class Wizard依然可以通过菜单栏的“开发者工具” > “类” > “类向导”来访问。
在“计算”按钮的属性视图中,选择“Control Events”选项卡,点击BN_CLICKED消息的空白处,选择“Add”按钮,会自动为按钮添加一个空的OnBnClickedAddButton()函数。
在“计算”按钮上右键单击,选择“Add Event Handler...”菜单项。弹出的“Event Handler Wizard”对话框中,默认已选择BN_CLICKED消息。点击“Add and Edit”按钮,会自动生成一个空的OnBnClickedAddButton()函数。
在“计算”按钮的属性视图中,选择“Control Events”选项卡。BN_CLICKED消息在列表中,点击空白处并选择“Add”,会弹出一个对话框,选择“Add”选项,按钮会自动生成OnBnClickedAddButton()函数。
双击“计算”按钮,MFC会自动在CAdditionDlg类中为按钮添加BN_CLICKED消息处理函数。默认函数名为OnBnClickedAddButton(),函数体为空,需要根据需求进行实现。
通过以上方法,我们可以为“计算”按钮添加一个空的消息处理函数。接下来需要在函数体中添加自定义功能代码,使其能够实现实际的加法运算。
例如,在OnBnClickedAddButton()函数中:
void CAdditionDlg::OnBnClickedAddButton(){ // 获取被加数和加数的值 UpdateData(TRUE); m_editSum = m_editSummand + m_editAddend; UpdateData(FALSE);}
UpdateData(TRUE);
:更新数据绑定到控件的值。m_editSum = m_editSummand + m_editAddend;
:计算和并赋值给和的编辑框。UpdateData(FALSE);
:更新控件的显示内容。运行程序,输入被加数5.1和加数2.3,点击“计算”按钮,和的编辑框会显示7.4。
通过以上方法,我们可以为MFC控件添加消息处理函数,并实现自定义功能。
转载地址:http://egyfk.baihongyu.com/