首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

《VC++ 技術內幕》學習筆記(二):MFC 應用程式架構與 AppWizard 實戰

     編輯:VC 教學

MFC 應用程式架構優勢

  • 標準化結構:文件/視圖架構分離資料與顯示,利於維護與擴充。
  • 程式碼精簡:透過動態連結 MFC DLL,執行檔體積小。
  • 開發效率:Visual C++ 工具(AppWizard、ClassWizard)大幅減少樣板代碼。
  • 功能豐富:MFC 封裝 Windows API、通用控制項、資料庫、網路、列印等完整功能。

AppWizard 建立 Hello World 單文件應用程式

  1. 選單 File → New → Projects,選 MFC AppWizard (exe),專案命名 MyApp01。
  2. Step 1 選 Single Document,其餘預設。
  3. 完成後,ClassView 開啟 CMyApp01View 類別,雙擊 OnDraw 函數。
  4. 在 // TODO: add draw code for native data here 處加入:
void CMyApp01View::OnDraw(CDC* pDC)
{
    CMyApp01Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    pDC->TextOut(10, 10, _T("雷神願意和所有學 VC 的朋友共同進步!"));
    // TODO: add draw code for native data here
}

編譯執行(F5),視窗左上角顯示文字,具備選單、工具列、狀態列、關於對話框、列印預覽等完整 Windows 應用程式特性。

手工建立最小 MFC 應用程式(對照理解架構)

建立 Win32 Application 專案,手動加入 MyApp.h、MyApp.cpp:

// MyApp.h
class CMyApp : public CWinApp
{
public:
    virtual BOOL InitInstance();
};

class CMyFrame : public CFrameWnd
{
public:
    CMyFrame();
protected:
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnPaint();
    DECLARE_MESSAGE_MAP()
};
// MyApp.cpp
#include "MyApp.h"

CMyApp theApp;  // 全域應用程式物件

BOOL CMyApp::InitInstance()
{
    m_pMainWnd = new CMyFrame;
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;
}

CMyFrame::CMyFrame()
{
    Create(NULL, _T("手工建立的 MFC 視窗"));
}

BEGIN_MESSAGE_MAP(CMyFrame, CFrameWnd)
    ON_WM_LBUTTONDOWN()
    ON_WM_PAINT()
END_MESSAGE_MAP()

void CMyFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
    CClientDC dc(this);
    dc.TextOut(point.x, point.y, _T("滑鼠左鍵點擊處"));
}

void CMyFrame::OnPaint()
{
    CPaintDC dc(this);
    dc.TextOut(10, 10, _T("WM_PAINT 重繪"));
}

核心概念總結

類別角色關鍵方法
CWinApp應用程式物件,單一實例InitInstance, Run
CFrameWnd主視窗框架Create, LoadFrame
CView視圖類別,繪製資料OnDraw, OnInitialUpdate
CDocument文件類別,管理資料Serialize, SetModifiedFlag

學習建議

  • 親手敲碼:即使範例有現成代碼,手動輸入能強化語法記憶與除錯經驗。
  • 修改實驗:將 TextOut 字串改為自訂內容,觀察重繪行為。
  • 閱讀 MFC 原始碼:安裝目錄 \VC98\MFC\SRC,追蹤 CWinApp::Run、CView::OnDraw 呼叫鏈。
  • 善用 ClassWizard:自動生成訊息映射、虛函數覆寫、DDX/DDV 代碼。

MFC 雖屬經典架構,但其文件/視圖分離、訊息映射、動態建立等設計模式仍具現代參考價值,奠定 Windows 程式設計核心功力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved