《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。
按钮的父窗口不同,显示的位置也会有差异。
(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。
按钮的父窗口不同,显示的位置也会有差异。
相关文章推荐
- 《VC++深入详解》学习笔记[2]——第3章MFC框架程序剖析
- 孙鑫《vc ++深入详解》第三章mfc框架程序剖析
- VC++深入详解(1):MFC框架程序剖析
- 第三章,MFC框架程序剖析
- 孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
- MFC程序框架剖析(1)
- 孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
- MFC程序框架的剖析2
- 孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
- MFC框架程序剖析
- MFC程序框架的剖析
- Lesson3: MFC框架程序剖析
- 《VC++深入详解》读书笔记——3.MFC程序框架剖析
- 孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
- MFC框架程序剖析
- MFC——2.MFC框架程序剖析
- 第3课 mfc框架程序剖析【转载】
- MFC程序框架的剖析
- Lesson3: MFC框架程序剖析
- VC++孙鑫-第三章-MFC AppWizard的原理与MFC程序框架-讲WIN32SDK和MFC编程的相同过程