MFC的苦涩

-------学MFC后的知识要点------

我记得这段里程是多么的艰难,我也明白一个道理:并非世上无难事,只怕有心人。MFC实在太难学了!

其中每条记录后面的数字编号1、2、3.....表示此知识点包含若干个重点部分需要掌握(完全是个人分析)

windows使theapp对象诞生-theapp对象的构造函数被调用(theapp部分成员被设置,或初始化)-由系统控制进入_tWinMain(进行一系列调用)-进入Run-利用Message_Map机制实现等待消息和处理消息。-----------MFC框架的流程
MFC消息笔记及重点问题:
1怎样向窗体发送消息:1、2
2检测消息队列中消息的方法:1、2
3MSG结构中的各个成员1、2、3、4、5、6
4windows消息类型:1窗口消息。2、命令消息 。3、控件通知消息(1、2、3)。
5传递不同类型消息时Message、lparam、wparam各个参数怎样取值。(WM_XXX、XN_XXX......)
6应用程序对象的Run函数有哪两个作用?
7MFC如何翻译消息:(preTranslateMessage()、::TranslateMessage())
8消息翻译之后通过什么函数传递给目标窗口进程?
深入浅出MFC消息映射的实现章节学习笔记:
1、队列消息与非队列消息的不同点?
2、MSG结构包含哪些成员?
3、MFC如何处理窗口消息(直接发送给窗口过程)?
4、什么是控件通知消息?传递一个控件通知消息时,wparam,lparam参数如何设置?
5、什么是命令消息?
6、消息映射声明部分为所在类添加了什么成员?(4个成员)
7、AFX_MSGMAP_ENTRY结构包含那些成员?
8、AFX_MSGMAP_ENTRY结构中的nSig成员的作用?
9、AFX_MSGMAP结构的各个成员及意义?(1、使用动态MFC DLL 2、使用静态MFC DLL)该结构中包含以下成员(pfnGetbaseMap、messageEntries、lpEntries)
10、如果一个类使用了消息映射机制,那么它的头文件和实现文件会包含那些与消息映射有关的宏?(DECLARE_MESSAGE_MAP、BEGIN_MESSAGE_MAP、END_MESSAGE_MAP)
11、消息映射的声明部分声明了哪些成员?(消息映射项数组、消息映射表、得到当前类的消息映射表函数、得到基类的消息映射表函数)
12、在消息映射的实现文件中,系统如何初始化消息映射数组?(不同类型消息用不同类型的宏:WM_COMMAND)
13、在消息映射的实现文件中,系统如何初始化消息映射表成员?(pBaseMap成员、pfnGetBaseMaP成员如何设置)
14、深入理解消息映射表(AFX_MSGMAP)结构的各个成员?
15、一个特定的消息映射宏的作用就是:初始化一个消息映射项结构,并且把他加入到消息映射项数组。(例如ON_COMMAND宏的作用)
16、消息映射宏的种类?各个种类是如何设置一个消息映射项目结构(AFX_MSGMAP_ENTRY)?
17、ON_NOTIY和ON_CONTROL消息映射宏的区别?(消息ID标识,消息处理函数签名)
18、ON__CONTROL_RANGE、ON_NOTIFY_RANGE、ON_COMMAND_RANGE宏的作用?
19、ON_UPDATE_COMMAND_UI、ON_UPDATE_COMMAND_UI_RANGE宏的作用?(nCode被设置为-1)
20、用于映射用户定义消息的宏:ON_MESSAGE如何设置一个消息映射项?
21、扩展消息映射宏是在愿消息映射宏的基础上又增加了更多功能。
22、ON_REGISTERED_MESSAGE宏如何设置消息映射项?(0xC000,0,0,0,消息ID,消息处理函数。函数原形:long(word,long))
23、onCmdMsg()函数和DispatchCmdMsg()函数的作用?(搜索当前类和基类的消息映射表,调用处理函数,让下个一个目标类搜索自己的消息映射表)
24、什么是窗口过程?MFC的窗口共享哪一个窗口过程?原窗口过程是怎样被替换的?
25、AfxWndProc函数的作用(将目标MFC对象指针保存在pWnd中)?原形?
26、AfxWndProc-AfxCallWndProc-WindowProc-OnWndMsg-消息处理函数-默认处理,是一个消息处理的流程。
27、OnWndMsg函数的作用?**重点
28、消息缓冲池的作用?(保留类信息、某些消息及消息处理函数的地址)
29、AFX_MSG_CACHE结构的各个成员及意义?如何在消息缓冲池中匹配一个消息(新消息应该怎样和AFX_MSG_CACHE结构匹配)
30、在什么情况下(由哪个函数返回给哪个函数)消息被传入缺省消息处理函数?
31、OnWndMsg函数将不同类型的消息分发给不同类型的处理函数:OnCommand、OnNotify、_AfxHandleActivate、_AfxHandleSetCursor
32、命令消息的传递流程初步:windows发送一个命令消息到主边框窗口-激活主边框窗口的窗口过程-......
33、命令消息的传递流程之关键:OnCommand命令处理函数被调用后的步骤...
34、CCmdTarget对象拥有的两个重要成员函数(用于处理消息)是什么?
35、在一个视对象(CMyview)的WM_CREATE消息处理过程中,处理顺序以及处理函数分别是什么?(窗口过程被激活并且查找相关的CWnd对象-调用CWnd对象的成员函数(WindowProc)-窗口对象的OnWndMsg函数被调用-......)
36、窗口消息要首先在消息缓冲池中找匹配,一变快速调用消息处理函数、节约时间。(匹配条件为:消息标志相同、当前对象的静态消息映射表成员与缓冲池中匹配消息的pMessageMap成员相同,一确定是同一个类)
37、理解MFC消息处理机制,可采用的分析顺序:windows消息-......(消息接受、消息匹配、消息处理)
38、一个Classwizard建立的单文档应用程序中的“关于”菜带的消息命令处理顺序:1-2-3-4-......
39、CFrameWnd对象的OnCommand成员的各个参数及意义?其默认实现是:确定是否要执行上下文帮助。
40、CWnd对象的OnCommand成员的默认实现是:处理命令或通知消息(WM_COMMAND消息)(1、)
41、CFrameWnd::OnCmdMsg成员的默认实现是:将消息逐级传递(活动视图-视图所关联的文档-......6个步骤)
42、CCmdTarget::DispatchMessage()函数的作用?(将消息派发给指定的消息处理函数)
43、CView、CDocument、CDocTemplate、CDialog、CMDIFramWnd类如何实现OnCmdMsg(有可能并没有覆盖基类)
44、CFrameWnd类在处理OnCmdMsg时所称的活动文档边框窗口、文档边框窗口的活动视分别是什么?
45、文档边框窗口的OnCmdMsg函数是如何实现的?疑问
46、CCmdTarget::DispatchCmdMsg函数的功能及实现方法?
45、什么是消息扩展映射宏?(ON_COMMAND_EX、消息处理函数的签名)
46、CView、CDocument、CDialog、CMDIFrameWnd类的OnCmdMsg函数是如何实现的?
47、CMDIFrameWnd::OnCommand的实现方法?
48、命令消息的处理流程:CWnd::OnWndMsg-CFrameWnd::OnCommand-CWnd::OnCommand(如果是同志消息首先调用ReFlectLastMsg)-CFrameWnd::OnCmdMsg-(活动视的OnCmdMsg-关联文档的OnCmdMsg-文档模板的OnCmdMsg-CFrameWnd的OnCmdMsg继续调用CWnd::OnCmdMsg(实际调用CCmdTarget::OnCmdMsg)-应用程序对象的OnCmdMsg-WindowProc的DefWindowProc)
----------------------------12.15文档视图结构
49、文档视图结构中的InitInstance流程:创建文档模版-加入到文档模版列表-创建主框架-命令调度-显示更新主框架
50、

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值