MFC系列(一)创建空白窗口
首先,我们需要创建一个MFC的项目。
创建完成后,我们点击下一步来到如图所示的设置界面,选择单个文档,取消文档/视图结构支持,取消使用 Unicode 库。
点击下一步,选择无数据库支持。再点击下一步,主要框架仅勾选最小化框和系统菜单,并选择使用菜单栏和工具栏,然后直接点击完成。
在右侧我们可以看到解决方案资源管理器中的文件列表。
直接运行程序会发现已经自行生成了很多内容,包括菜单栏等,下面我们删除它。 我们的项目名称为MFCTest,因此在MFCTest.cpp中,函数BOOL CMFCTestApp::InitInstance()的最后三行代码为自动生成的代码:
1 2 3 4 // 唯一的一个窗口已初始化,因此显示它并对其进行更新 pFrame->ShowWindow(SW_SHOW); pFrame->UpdateWindow(); return TRUE; 我们将其改为:
1 2 3 4 5 // 调整窗口大小 m_pMainWnd->SetWindowPos(NULL,0,0,811,632,SWP_NOMOVE); //800*600 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; 更改后的代码将窗口渲染为811*632的大小,而实际上用于显示的部分仅800*600。 在文件MainFrm.cpp中,找到函数 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct): 可以发现为了兼容性和创建各种控件已经生成了很多的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWndEx::OnCreate(lpCreateStruct) == -1) return -1; BOOL bNameValid; if (!