第三章讲的是MFC框架程序剖析,结合着视频和书看了一遍之后,只能有一个粗略的了解。先记下一个概念:MFC(Microsoft Function Class ,微软基础类库)。
MFC AppWizard
一个辅助生成源代码的向导工具,可以帮助我们自动生成基于MFC的源代码。第一章提到了创建一个Win32应用程序需要经过下列步骤。
设计窗口类(WNDCLASS);
注册窗口类(RegisterClass);
创建窗口(CreateWindow);
显示并更新窗口(ShowWindow|UpdateWindow);
编写消息循环;
编写窗口过程函数。
而基于MFC AppWizard的应用程序的在生成上和Win32相似,只是对其中的一些过程进行了封装,并提供了一些自定义。
全局变量和对象
窗口类,窗口类对象和窗口
窗口是屏幕上的一块儿矩形区域;窗口类是封装了对窗口的一系列操作的类,比如注册窗口,创建窗口,显示窗口,销毁窗口等等;窗口对象是窗口类的一个实例。
C++窗口类对象和窗口并不是一回事,他们之间唯一的关系是C++窗口类对象内部定义了一个窗口句柄变量,保存了与这个C++窗口类对象相关的那个窗口的句柄,窗口销毁时,与之对象的C++窗口的类对象是否销毁要看其生命周期是否结束。但是如果窗口类对象销毁,那与之对应的窗口也将销毁。
动态创建一个按钮
在MFC提供的资源类中,有些类的构造直接通过其构造函数就可以完成,也就是说,这些对象的构造函数包含这个对象的初始化操作。但是有些对象的产生出了调用构造函数之外,还需要一些函数来进行初始化的工作。
在MainFrame头文件中添加一个CButton对象 view sourceprint 1 private: CButton m_btn;
调用Create函数,创建窗口。 view sourceprint 1 //BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
2 m_btn.Create("Test",WS_CHILD|BS_DEFPUSHBUTTON,CRect(0,0,200,200),this,1);
3 m_btn.ShowWindow(SW_SHOWNORMAL);
编辑特别推荐: