一:MFC应用程序框架;
①应用程序入口:WinMain函数。但是向导生成代码中找不到,被MFC简化隐藏鸟。
在MFC中CWinApp类就是负责提供程序入口的类。 项目中的类继承它,重写InitInstance,ExitInstance等函数完成具体工作。
②应用程序框架:一个窗口容器,程序其他部件都在其中,对一个app,框架包括整个窗口,从标题栏、状态栏到边框。
有多种框架,对SDI,程序只有一个主框架类CMainFrame(CFrameWnd的派生类),视图建立在主框架类的基础上;
对MDI,程序还有一个子框架类CChildFrame(CMDIChildWnd的派生类),视图建立在子框架类中。
③文档:用于处理数据的读取写入等操作。在MFC中文档类由CDocument派生,具有新建,打开,保存,关闭等文档处理函数。
④视图:文档的可视化。一个文档可对应多个视图。用户通过操作视图达到和文档中的数据交互的目的。
⑤文档视图结构:文档和视图之间相互交互,视图和用户之间相互交互。
二:windows消息和事件驱动;
消息:os和app之间,app和app之间,app内部之间信息传递的方式。
消息三要素:消息名,整数参数和长整数参数。
Windows三类消息(除此外允许自定义消息):
1)窗口消息:除WM_COMMAND以外其他以WM开头的消息;
2)控件消息:除WM开头以外的其他消息;(当用户控件之间交互时,控件发送此类消息到主窗口)
3)命令消息:WM_COMMAND消息。(特殊窗口消息,从一个窗口到另一窗口)
事件驱动:用户的操作事件由Windows系统管理,然后通过系统将事件转化为对应消息发送给应用程序,然后应用程序调用对应的函数处理。
三:常用消息;
WM_CHAR:用户按下字母,数字键,回车,Tab等,
WM_CLOSE:即将关闭窗口,
WM_CREATE:正在创建窗口,
WM_DESTROY:即将销毁窗口,
WM_HSCROLL:单击水平滚动条,
WM_VSCROLL:
WM_KEYDOWN:按下键盘某个键,包括功能键,
WM_KEYUP:释放键,
WM_KILLFOCUS:窗口失去焦点?
WM_SETFOCUS:窗口获得焦点
WM_LBUTTONDBLCLK:双击左键,先产生WM_LBUTTONDOWN消息
WM_LBUTTONDOWN:单击左键
WM_LBUTTONUP:释放左键
WM_RBUTTONBLCLK:
WM_RBUTTONDOWN:
WM_RBUTTONUP:
WM_MOVE:窗口移动
WM_PAINT;窗口框架需绘制
WM_SETCURSOR:设置光标,
WM_TIMER:
四:MFC消息映射;
消息映射:将具体的消息和具体的处理函数联系起来。(此类必须是CCmdTarget或者CCmdTarget子类的派生类)。
消息映射表的结构:
BEGIN_MESSAGE_MAP(子类名,父类名)
消息映射宏1
消息映射宏2
消息映射宏3
……
END_MESSAGE_MAP()
其中,子类名是当前类,开始于B_M_M宏结束于E_M_M宏。每条语句没有分号。使用消息映射之前,要在头文件声明一个消息映射表:DECLARE_MESSAGE_MAP()
浙公网安备 33010602011771号