博客
关于我
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/

    你可能感兴趣的文章
    MiniOS 3.3.4 发布,新功能有这些!
    查看>>
    Minio上传策略漏洞_关闭列出文件访问列表_使用自定义桶策略_CUSTOM---Ruoyi-Cloud-Plus工作笔记207
    查看>>
    MINIO图片地址浏览器打开不显示
    查看>>
    minio多用户权限管控
    查看>>
    MinIO客户端mc使用
    查看>>
    Minio文件存储快速入门
    查看>>
    MinIO无法上传文件,Content-Length(XX) and stream length(0) disagree
    查看>>
    MinIO生成带签名的文件下载链接
    查看>>
    MinIO的分布式系统是如何确保数据一致性的?
    查看>>
    miniUI ExcelExport导出JAVA实现
    查看>>
    miniUI mini-monthpicker ie8兼容性问题
    查看>>
    MiniUI treeGrid 树节点展开和不展开的性能差别很大
    查看>>
    Mint-Ui 时间组件,比较时间
    查看>>
    Mint-UI中Invalid prop: type check failed for prop "value". Expected String, got Array.解决方案
    查看>>
    Min_25筛
    查看>>
    MIPS广告牌发布节目后显示未下载,节目发布不成功
    查看>>
    Mirantis OpenStack fuel 物理机部署
    查看>>
    MISCONF Redis is configured to save RDB snapshots, but it is currently not a
    查看>>
    Missing artifact com.sun:tools:jar:1.5.0解决的方法
    查看>>
    mit oracle v2.2,Oracle Exadata Database Machine X2-2 Hardware
    查看>>