当前位置: 首页 > news >正文

DECLARE_MESSAGE_MAP 宏

  此宏描述的头文件位置: afxwin.h

如果在 DECLARE_MESSAGE_MAP之后声明任何成员,则必须为其指定新的访问类型 (公共、 private或 protected)。说明:定义消息映射的声明类。 你的应用程序的每个 CCmdTarget 派生类,必须提供消息映射来处理消息。

有关消息映射和 DECLARE_MESSAGE_MAP 宏的更多信息,请参见 消息处理和映射主题。

在类声明的末尾处使用 DECLARE_MESSAGE_MAP 宏。


  

class CHelloApp:public CWinApp

{

 // ……

 DECLARE_MESSAGE_MAP()

};

然后在定义这个类的成员函数的的 .cpp 文件中,使用 BEGIN_MESSAGE_MAP 宏、每一个消息处理函数的宏入口和 END_MESSAGE_MAP 宏。

  

 BEGIN_MESSAGE_MAP(CHelloMFCApp, CWinApp)
 //{{AFX_MSG_MAP(CHelloMFCApp)
 ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  // NOTE - the ClassWizard will add and remove mapping macros here.
  //    DO NOT EDIT what you see in these blocks of generated code!
 //}}AFX_MSG_MAP
 // Standard file based document commands
 ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
 ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()


如果在 DECLARE_MESSAGE_MAP之后声明任何成员,则必须为其指定新的访问类型 (公共、 private或 protected)。
下面是错误的代码:()

  

class CHelloMFCApp : public CWinApp
{
public:
 CHelloMFCApp();

// Overrides
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CHelloMFCApp)
 public:
 virtual BOOL InitInstance();
 //}}AFX_VIRTUAL

// Implementation
 //{{AFX_MSG(CHelloMFCApp)
 afx_msg void OnAppAbout();
  // NOTE - the ClassWizard will add and remove member functions here.
  //    DO NOT EDIT what you see in these blocks of generated code !
 //}}AFX_MSG
 DECLARE_MESSAGE_MAP()

private:  // 此处不能丢

int i;
};

 

转载于:https://www.cnblogs.com/herbertchina/p/4306815.html

相关文章:

  • Apache发布NetBeans 10.0,增强对JDK 11的支持
  • Shadow DOM 内部构造及如何构建独立组件
  • 打印二叉树某一层次的值(重点)
  • 单例模式中用volatile和synchronized来满足双重检查锁机制
  • getName和getSimpleName方法一般使用
  • 博客迁移:https://blog.llyweb.com
  • 20141102-微信.NET-笔记
  • Java知识体系梳理
  • java 一些容易忽视的小点-数据类型和运算符篇
  • 设计模式--代理(Proxy)模式
  • 系统设计(系列二)--现上问题整理(云崩溃和服务不可用)
  • 医疗行业邮件服务器架设方案
  • Python 代码片段收藏
  • IOS--UISwitch的使用方法
  • Netty防止内存泄漏措施
  • 深入了解以太坊
  • 分享的文章《人生如棋》
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • linux安装openssl、swoole等扩展的具体步骤
  • log4j2输出到kafka
  • Redash本地开发环境搭建
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • VUE es6技巧写法(持续更新中~~~)
  • vue2.0项目引入element-ui
  • windows-nginx-https-本地配置
  • 从零开始在ubuntu上搭建node开发环境
  • 第2章 网络文档
  • 网络应用优化——时延与带宽
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 移动端高清、多屏适配方案
  • ​一些不规范的GTID使用场景
  • # 数论-逆元
  • #etcd#安装时出错
  • #pragma multi_compile #pragma shader_feature
  • (10)STL算法之搜索(二) 二分查找
  • (4)事件处理——(7)简单事件(Simple events)
  • (5)STL算法之复制
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (五)关系数据库标准语言SQL
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)c++ std::pair 与 std::make
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Core 版本不支持的问题
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .NET中两种OCR方式对比
  • /etc/skel 目录作用