博客
关于我
MFC工作笔记0004---MFC中afx_msg是什么,afx_msg void function()是什么意思
阅读量:796 次
发布时间:2023-02-09

本文共 1356 字,大约阅读时间需要 4 分钟。

MFC编程入门之九:为控件添加消息处理函数

在MFC编程中,对话框和控件等组件会在特定操作时触发各种消息。例如,按钮的点击事件会产生BN_CLICKED消息,编辑框内容修改时会产生EN_CHANGE消息等。这些消息最终由对应的消息处理函数处理。要实现特定操作的功能,我们需要为这些消息定义并实现相应的处理函数。

一、为“计算”按钮控件添加消息处理函数

以加法计算器程序为例,以下是为“计算”按钮添加消息处理函数的四种方法:

1. 使用Class Wizard添加消息处理函数

对于熟悉VC++ 6.0的开发者来说,Class Wizard是一个非常有用的工具。它可以帮助我们快速添加消息处理函数。在VS2010中,Class Wizard依然可以通过菜单栏的“开发者工具” > “类” > “类向导”来访问。

在“计算”按钮的属性视图中,选择“Control Events”选项卡,点击BN_CLICKED消息的空白处,选择“Add”按钮,会自动为按钮添加一个空的OnBnClickedAddButton()函数。

2. 使用“Add Event Handler...”添加消息处理函数

在“计算”按钮上右键单击,选择“Add Event Handler...”菜单项。弹出的“Event Handler Wizard”对话框中,默认已选择BN_CLICKED消息。点击“Add and Edit”按钮,会自动生成一个空的OnBnClickedAddButton()函数。

3. 在按钮的属性视图中添加消息处理函数

在“计算”按钮的属性视图中,选择“Control Events”选项卡。BN_CLICKED消息在列表中,点击空白处并选择“Add”,会弹出一个对话框,选择“Add”选项,按钮会自动生成OnBnClickedAddButton()函数。

4. 双击按钮添加消息处理函数

双击“计算”按钮,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/

    你可能感兴趣的文章
    mini web
    查看>>
    miniconda设置清华源
    查看>>
    MinIO - 从 环境搭建 -> SpringBoot实战 -> 演示,掌握 Bucket 和 Object 操作
    查看>>
    MinIO - 服务端签名直传(前端 + 后端 + 效果演示)
    查看>>
    Mirantis OpenStack fuel 物理机部署
    查看>>
    MIT-JOS系列6:用户环境(二)
    查看>>
    Mitel MiCollab 企业协作平台 任意文件读取漏洞复现(CVE-2024-41713)
    查看>>
    miui12怎么自定义开机动画_一篇文章看懂Redmi Note 7/7 Pro新增MIUI 12十大暖心功能...
    查看>>
    MixPHP_数据库操作基类
    查看>>
    myeclipse启动resin出错
    查看>>
    MyEclipse使用Ant打包项目
    查看>>
    MyEclipse中的SWT/Swing设计器(上)
    查看>>
    mybatis针对mysql自增主键怎样配置mapper
    查看>>
    Mybatis采坑记及源码分析
    查看>>
    mybatis配置模板详细分析(全)
    查看>>
    Mybatis配置useGeneratedKeys=“true“ keyProperty=“id“的作用
    查看>>
    Mybatis配置
    查看>>
    mybatis逆向工程详细配置讲解(全)
    查看>>
    Mybatis连接池与事务深入
    查看>>
    MyBatis实现 if-else功能
    查看>>