您的位置:首页 > 编程语言 > C语言/C++

《VC++深入详解》学习笔记 第三章 MFC框架程序剖析(未完成)

2012-09-02 20:16 330 查看
1. 单文档窗口

(1)CAboutDlg

void CAboutDlg::DoDataExchange(CDataExchange* pDX);

(2)CMainFrame

变量:CStatusBar m_wndStatusBar;

CToolBar m_wndToolBar;

函数:CMainFrame();

virtual ~CMainFrame();

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

(3)CTestApp

全局变量:CTestApp theApp;

函数:CTestApp();

virtual BOOL InitInstance();

(4)CTestDoc

virtual BOOL OnNewDocument();

virtual void Serialize(CArchive& ar);

(5)CTestView

CTestView();

CTestDoc* GetDocument();

virtual void OnDraw(CDC* pDC);

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);

virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

2.theApp全局对象—CTestApp构造函数—WinMain函数

3.应用程序的实例由实例句柄标识,而对于MFC程序来说,通过产生一个应用程序类的对象来唯一标识这个程序的实例。每个MFC程序有且仅有一个从应用程序类(CWinApp)派生的类,而且有且仅有一个该派生类的实例化对象,就是theApp全局对象。

4. theApp(CTestApp—CWinApp)—AfxWinMain((WinMain)—pThread,pApp(完成窗口创建,消息循环,窗口过程))—InitInstance(CMainFrame)

5.CMainFrame类的对象创建程序框架窗口其中的PreCreateWindow(产生窗口之前修改窗口的外观)调用AfxEndDeferRegisterClass函数,注册窗口后,CWnd类中的CreateEx函数创建窗口,显示和更新窗口在CTestApp的InitInstance函数中

6.CWinThread类的Run函数完成消息循环(pThread)

7.消息映射机制

8.CTestView视类窗口(CWnd)

9.CTestDoc文档类(CDocument—CCmdTarget—CObject) //数据和显示分离。

10.以::(作用域标识符)开始的表示方法表明该函数是一个全局函数。(如:调用同名的Platform SDK函数)

11.C++窗口类对象和窗口不是一回事,他们之间唯一的关系是:C++窗口类对象内部定义了一个窗口句柄变量,保存了与这个C++窗口类对象相关的哪个窗口。(我的理解:类似指针和其指向的内存空间的关系)

12.CButton类(CWnd—CCmdTarget—CObject)

定义类对象—调用Create函数—ShowWindow。

按钮的父窗口不同,显示的位置也会有差异。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: