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

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。

按钮的父窗口不同,显示的位置也会有差异。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值