MFC程序组织结构

 

 

所有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 等)。如果需要自定义文档框架窗口,可以创建新文档框架窗口类(请参见添加类)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值