day13 – 补课

概要:

对话框:

​ App – 负责整个程序的初始化,包括对话框的创建,InitInstance

Dialog – 对话框

单文档:

App – 负责整个程序的初始化,包括主窗口的创建,doc的创建,InitInstance

MainFrame – 负责非客户区(菜单,状态栏,工具栏,快捷键, 视图分割)和客户区view的创建

view – 负责客户区的界面的展示

App – 单例:

​ AfxGetApp – 获取App

​ App – m_hInstance

MainFrame – 单例

​ AfxGetMainFrame – 获取MainFrame

​ GetMenu – 获取主菜单

整体使用方式:

MFC是SDK的简单封装,所以在MFC中多用类来操作窗口,相当于在SDK中使用句柄。

每个窗口类中都存储了自己的窗口句柄,GetSafeHwnd()来获取,

通过FromHandle,将句柄转换为类对象。

控件:

\1. 所有控件都封装了对应的类

\2. 简单控件(文本框,checkbox, radiobox)使用DDX,绑定到简单类型上,

​ 复杂控件(listcontrol, listbox,combobox, treecontrol, tabcontrol。。。),绑定到MFC封装的控件类型

\3. 需要给控件扩展功能,则使用子类化,在DDX基础上,将类型换成自己继承的MFC对应类的子类

在MFC中添加处理逻辑的方式:

\1. 消息响应

\2. 虚函数(PreTranslateMessage, OnIntialDialog, OnCreateClient, PreCreateWindow, OnUpdate, OnDraw)

窗口的生命周期:

创建初始化 – WM_CREAWTE(来自CreateWindow)

。。。。

点击关闭 – WM_CLOSE

窗口销毁 – WM_DESTROY(DestroyWindow)

上一篇:DAY13 减肥计划案例和随机数


下一篇:关于MQ的几件小事:如何保证消息队列的高可用