1.一个win32程序需要完成以下基本步骤:
1.注册窗口类
2.创建窗口
3.消息获取与分派
4.处理消息
消息的获取是在一个循环中,可以使用GetMessage()或PeekMessage()来获取消息(两者的区别是,空闲时间的处理)
2.当使用vs2013编译器默认生成一个MFC程序时,可以获得一个窗口,但是此时,窗口区域不可编辑,当把CxxView类的父类修改为CEditView是窗口可编辑。
MFC程序的编写过程是对原始MFC类的继承并修改虚函数的过程。
MFC类的继承关系(多文档)如下:
Document/View
在MFC之中,可以把Document简单想做是“数据”,MFC的CDocument简单地说就是负责处理数据的类。
Document/View的价值在于,这些MFC类已经把一个应用程序所需的“数据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,需要在派生类中改写它们,有关读写文件的操作在CDocument的Serialize函数中进行,有关画面显示的操作在CView的OnDraw或OnPaint函数中进行。
View本身虽然已经是一个窗口,其外围却必须再封装一个外框窗口作为舞台。这样的切割其实是为了让View可以非常独立地放置于“MDI Document Frame窗口”或其他应用窗口之中,也可以说,Document Frame窗口是View窗口的一个容器。数据的内容、数据的表象、以及容纳数据表象之外框窗口三者是一体的,换言之,程序每打开一份文件(数据),就应该产生三份对象:
1.一份Document对象
2.一份View对象
3.一份CMDIChildWnd对象(作为外框窗口)
这三份对象由一个所谓的Document Template对象来管理。让这三份对象产生关系的关键在于CMultiDocTempalte:
类别型录网和CRuntimeClass(RTTI)通过三个宏来完成(每个宏代表一些指定语句)。
在创建MFC界面时,选择合适的基类可以生成不同的初始界面。