MFC消息映射的问题
本人是菜鸟,但是我知道windows程序的生命是靠GetMessage来推动的。MSGmsg;while(GetMessage(&msg,NULL,NULL,NU...
本人是菜鸟,但是我知道windows程序的生命是靠GetMessage来推动的。MSG msg;while (GetMessage(&msg, NULL, NULL, NULL)) {TranslateMessage(&msg);DispatchMessage(&msg);}消息循环,DispatchMessage会把消息路由给操作系统,然后让操作系统去调用窗口的过程函数。然后我们可以在窗口过程函数里用switch case语句做对消息作出反映。这样的思路我觉得应该是很明确的。但是在MFC我就迷糊了,我们可以从CCmdTarget派生出来的类响映消息。他到底是怎么实现的我还是不能明白?DispatchMessage把消息弄到哪里去了?还有一事要问!#define DECLARE_MESSAGE_MAP() \static AFX_MSGMAP_ENTRY _messageEntries[]; \static AFX_MSGMAP messageMap; \virtual AFX_MSGMAP* GetMessageMap() const;这样的宏我看不来。 \ 是什么意思。带参数的宏和不带参数的宏都见过没见过这样的。为发扬国内软件技术,希望有高手能够给我指条明路。小弟感激不尽,
展开
展开全部
孙鑫的C++视频教学有一节课讲的很清楚了 推荐初学者学习
MFC的消息映射机制是通过窗口或控件的指针来映射窗口或控件的句柄来对消息作出响应的
原理就是 MFC中所有的窗口类和控件类都是由基类CWnd派生出来的 CWnd类里有一个句柄成员变量hWnd 通过利用指针映射对应的句柄对消息进行路由
其实原理都是一样的 只是MFC把这些过程都封装起来了 你可以断点单步调式 跟进程序里看看窗口的建立过程 跟win32是一样的 说的比较笼统 看孙鑫的视屏教程吧 讲的很清楚的 貌似是第4课的内容
关于 \ 是宏定义当中的连接符 表示所连接起来的语句是一行 但是如果把代码都写成一行的话 阅读起来会很吃力 所以用 \ 符号分断 但是编译器编译的时候适当做一行来编译的
MFC的消息映射机制是通过窗口或控件的指针来映射窗口或控件的句柄来对消息作出响应的
原理就是 MFC中所有的窗口类和控件类都是由基类CWnd派生出来的 CWnd类里有一个句柄成员变量hWnd 通过利用指针映射对应的句柄对消息进行路由
其实原理都是一样的 只是MFC把这些过程都封装起来了 你可以断点单步调式 跟进程序里看看窗口的建立过程 跟win32是一样的 说的比较笼统 看孙鑫的视屏教程吧 讲的很清楚的 貌似是第4课的内容
关于 \ 是宏定义当中的连接符 表示所连接起来的语句是一行 但是如果把代码都写成一行的话 阅读起来会很吃力 所以用 \ 符号分断 但是编译器编译的时候适当做一行来编译的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看深入浅出吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询