关于MFC中的消息映射

修.D.罗 2015-08-10 04:46:27
在一个空项目中加入头文件afxwin.h,是不是就可以直接在类中使用DECLARE_MESSAGE_MAP();进行消息声明;

...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsang_web 2015-08-13
  • 打赏
  • 举报
回复
不好意思刚才漏字了 一、首先你的使用MFC库,然后就是你说的加上#include <afxwin.h> 二、你使用类必须派生于CCmdTarget类(直接派生或者间接派生) 三、就是类声明宏 DECLARE_MESSAGE_MAP() 四、类实现宏 BEGIN_MESSAGE_MAP (theClass,baseClass) END_MESSAGE_MAP ()
wsang_web 2015-08-13
  • 打赏
  • 举报
回复
一、首先你的使用MFC库,然后就是你说的加上#include <afxwin.h> 二、你使用类必须派生于CCmdTarget类(直接派生或者间接派生) 三、就类声明宏 DECLARE_MESSAGE_MAP() 四、类实现宏 BEGIN_MESSAGE_MAP (theClass,baseClass) END_MESSAGE_MAP ()
阿源是少年 2015-08-13
  • 打赏
  • 举报
回复
MFC的消息映射是一套东西,不是加一个头文件就可以用了
yaozhiyong110 2015-08-13
  • 打赏
  • 举报
回复
当然不行啊 你得在MFC的框架下 才能使用消息映射 你去看DECLARE_MESSAGE_MAP宏的定义就知道了 #define DECLARE_MESSAGE_MAP() \ protected: \ static const AFX_MSGMAP* PASCAL GetThisMessageMap(); \ virtual const AFX_MSGMAP* GetMessageMap() const; \ 。。。。。 这个必须要在框架下 有个全局的链表保存类的信息 这个消息才能一级级往上传 你是个空项目 你加这个宏 那肯定编译都不过 BEGIN_MESSAGE_MAP(theClass, baseClass) 这里你基类不填那编译都不过 这样你必需有个基类 而基类又必须定义这个宏 除非你自己定义一个基类做顶层类 自己定义GetThisMessageMap GetMessageMap这2个函数 然后你的子类可以用这个宏 具体的你还是看下深入浅出MFC吧 里面有这个宏的详细解答...

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧