目 录CONTENT

文章目录
MFC

MFC Windows 程序开发究竟是什么

WenzhouXv
2023-07-22 / 0 评论 / 0 点赞 / 57 阅读 / 0 字

MFC Windows 程序开发究竟是什么

从GUI快速入手MFC

  • Windows操作系统顾名思义就是窗口的意思,开发Windows应用程序,就是组织一个又一个的"窗口"!
  • MFC应用程序就是MFC的C++库进行这一系列"窗口"的开发 .正如我们掌握的printf,fopen进行C语言开发一样,我们需要知道MFC为我们提供哪些针对这些"窗口"的对象.

MFC Windows 应用程序开发的核心概念

  • 在Windows 应用窗孔中,窗口是通过窗口句柄(HWND)来标识的. 我们要对某个窗口进行操作,首先就要得到这个窗口的句柄. 在Windows程序中,有各种各样的资源(窗口,图标,光标,画刷等),系统在创建这些资源时会为他们分配内存,并返回标识这些资源的标识号,即句柄.句柄就是Windows对象的身份证.
  • 一句话的经验:MFC开发Windows应用就是对一个个MFC对象的熟悉,改造过程-- MFC对象就是把一个个Windows对象编程了易于标准化程序开发的C++对象

详细映射

从Windows对象到MFC对象

  • **消息映射从语义上看就是事件驱动编程,从语法上是一个将详细和成员函数相互关联的表.**比如,框架窗口接收到一个窗口绘制消息,MFC将搜索该窗口 的消息映射,如何粗在一个处理WM_PAINT的详细的处理程序,然后就调用OnPaint.

  • MFC为只想消息映射在内部所作的工作隐藏在某些十分复杂的宏

    1. 通过DECLARE_MESSAGE_MAP添加到类声明中,声明消息映射.

    2. 通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAPEBD_MESSAGE_MAP的调用之间处理消息.

    3. 添加成员函数来处理消息

      //框架窗口类
      class MainWindow : public CFrameWnd //这是一个C++对象表面的Windows窗口
      {
      	CButton* pBtn;
      public:
      	MainWindow();
      	afx_msg void HandleButton();
      	//加入消息循环,让MFC框架完成让Windows消息映射到成员函数的过程
      	DECLARE_MESSAGE_MAP()
      
      };
      BEGIN_MESSAGE_MAP(MainWindow, CFrameWnd)
      	ON_BN_CLICKED(10002, HandleButton)
      END_MESSAGE_MAP()
      void MainWindow::HandleButton()
      {
      	::MessageBox(NULL,TEXT("Hello"),TEXT("MFC"), MB_OK);
      }
      

总结

  • MFC封装了Windows对象形成一个个C++对象
  • 消息映射王城了这些C++对象与Windows消息的对应关系,形成了成员函数
  • 程序员只需关注业务逻辑,把这些逻辑编码到这些成员函数,完成业务系统.
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区