所有MFC类都已C开始,并且m_作为前缀。
afxwin.h的头文件中包含了很多MFC类得定义。
在MFC中消息的分发处理结果代码被隐藏。WinMain()函数也被隐藏,由MFC库在后台执行。
但是用Application wizard 来生成windows程序时,WindowProc函数将被隐藏。
HDC:设备上下文。是Windows授予我们输出信息的权限。
PostQuitMessage(0)传递消息消息给WinMain使得GetMessage()函数返回FALSE。
MFC类的InitIstance()函数内部实现WinMain()函数的调用。包括创建和显示窗口代码。
注意区别物理窗口和实体窗口类。。。千万不要混淆。
应用程序要在开始执行之前存在。WinMain()函数要调用应用程序对象Instance()函数成员来构造窗口对象。
#pragrma once 指令保证文件只嵌入一次。
计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。
解释器或编译器在遇到宏时会自动进行这一模式替换
宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,
但在文本处理程序中应用普遍
在MFC程序中宏不是C++代码。
CTestEditorDoc* CTestEditorView::GetDocument() const //这是调试版本 ,非调试版本是内联的
CTestEditorDoc* GetDocument() const;//这是非调试版本
调试版编译器不会检测初始化的变量。
InitInstance 函数
afx_msg宏表示声明的是一个消息响应函数
可以吧任何要初始化的代码放到TestEditor文件中InitInstance的定义中;
MFC程序运行的基本步骤:(1)创建应用程序对象theApp。(2)执行MFC提供的WinMain()函数。
(3)WinMain()函数调用Instance()函数,此函数创建文档模板、主框架窗口、
文档和视图、(4)WinMain()调用Run()函数,此函数执行主消息循环,以获取和分派Windows消息。
使用DECLARE_DYNCREATE宏可以使每个CObject的派生类的对象具有运行时动态创建的能力
文档模板:管理程序的文档对象,还管理与文档相关的窗口和视图。
文档模板类对象用来把文档、视图、和窗口捆绑在一起。应用程序中每种
文档类型都需要一个文档模板。CSingleDocTemplate CMultiDocTemplate;
当您使用应用程序向导创建主干应用程序时,应用程序向导除了创建应用程序、文档和视图类,还为应用程序的主框架窗口创建派生的框架窗口类。默认情况下此类称为 CMainFrame,包含它的文件命名为 MAINFRM.H 和 MAINFRM.CPP。 如果应用程序是 SDI,则 CMainFrame 类从 CFrameWnd 类派生。 如果应用程序是 MDI,则 CMainFrame 类从 CMDIFrameWnd 类派生。在此情况下,CMainFrame 实现主框架,该主框架包含菜单、工具栏和状态栏。“应用程序向导”不为您派生新的文档框架窗口类。而是使用 CMDIChildWnd 类中的默认实现。MFC 框架创建子窗口以包含应用程序要求的每一视图(视图类型可以是 CScrollView、CEditView、CTreeView、CListView 等)。如果需要自定义文档框架窗口,可以创建新文档框架窗口类(请参见添加类)。