1. MFC介绍
MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套 C++类的集合,是一套面向对象的函数库,以为的方式提供给用户使用。利用这些类,可以有效发帮助程序员完成 Windows 应用程序的开发。
2. 窗口类,窗口对象与窗口关系
窗口类中定义一个类型为 HWND 成员变量,用来保存与之相关的窗口句柄值,可以用一个窗口类的实例即窗口对象来对应一个创建的窗口(是一种资源);
窗口对象与窗口之间的关系:C++窗口类对象与窗口并不是一回事,它们之间唯一的关系是 C++窗口类对象内部定义了一个窗口句柄变量,保存了与这个 C++窗口类对象相关的那个窗口的句柄。窗口销毁时,与之对应的 C++窗口类对象销毁与否,要看其生命周期是否结束,但C++窗口类对象销毁时,与之相关的窗口将销毁,因为它们之间的纽带(m_hWnd)已经断了,因此这时要回收窗口资源。窗口销毁时调用 DestroyWindow 函数,窗口类对象销毁即将 m_hWnd 变量设置为 NULL。
3. Button的添加
首先在View类中添加一private变量:
private:
CButton btn;
然后再在View的消息WM_CREATE中添加Create函数,完成后去View.cpp中添加代码段:
int CMainMfcView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
btn.Create(L"按钮",WS_CHILD|WS_VISIBLE|BS_AUTO3STATE,CRect(0,0,100,100),this,123);
/*按钮创建,WS_CHILD...按钮样式,CRect(左,上,右,下),指定按钮控件的窗口,按钮ID*/
btn.ShowWindow(SW_SHOWNORMAL); //显示
return 0;
}
小结:
Frame类:窗口类,是view窗口类的附窗口
View类:窗口类(视类)、数据的显示修改
Doc类:Document,文档类
App类:应用程序类
Dlg类:对话框类,比如:菜单上的帮助(可有可无)
在子类构造函数执行前,其父类的构造函数先被执行;