MFC框架解析
通過上述方法,我們進行代碼的編寫,創建一個空項目,我們要編寫MFC應有程序,因此設置項目的屬性,
項目->屬性->鏈接器->系統->子系統為:窗口 (/SUBSYSTEM:WINDOWS),項目->屬性->常規->項目默認值->MFC的使用為:在靜態庫中使用 MFC。
創建一個app.h頭文件,代碼如下:
#pragma once #include<afxwin.h>//繼承CWinApp,重寫InitInstance()函數 class CTestWinApp :public CWinApp {public:BOOL CTestWinApp::InitInstance(); };//繼承CFrameWnd class CTestFrameWnd : public CFrameWnd { public:CTestFrameWnd();afx_msg void OnPaint();DECLARE_MESSAGE_MAP(); };創建菜單資源等,resource.h中的資源如下:
//{{NO_DEPENDENCIES}} // Microsoft Visual C++ 生成的包含文件。 // 供 AppMFC.rc 使用 // #define IDI_ICON 101 #define IDR_MENU 102 #define ID_OPEN 40004 #define ID_SAVE 40005 #define ID_ABOUT 40006// Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 103 #define _APS_NEXT_COMMAND_VALUE 40007 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif在app.cpp中實現代碼,如下:
#include "app.h" #include<afxwin.h> #include"resource.h"CTestWinApp theApp;//全局對象BOOL CTestWinApp::InitInstance() {m_pMainWnd = new CTestFrameWnd();m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateWindow();return TRUE; }CTestFrameWnd::CTestFrameWnd() {Create(NULL, "MFC 測試程序",WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME,rectDefault,NULL, MAKEINTRESOURCE(IDR_MENU)); } void CTestFrameWnd::OnPaint() {} BEGIN_MESSAGE_MAP(CTestFrameWnd, CFrameWnd)ON_WM_PAINT() END_MESSAGE_MAP()運行結果:
總結
- 上一篇: Linux命令整理 —— 目录结构
- 下一篇: 解决git关联的的文件颜色、小图标