首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MFC 對話框專案中開啟單一文件視圖的正確做法

     編輯:程式設計綜合問答

初學 MFC 時,常見需求是在「以對話框為基礎」的專案中,透過按鈕啟動一個「單一文件」視圖來繪製折線圖。許多開發者嘗試在現有對話框專案中後加文件/視圖架構,卻發現極其繁瑣且易出錯。

推薦架構:先建單一文件專案,再加入對話框

MFC 的文件/視圖架構(Document/View)與對話框架構本質不同。最簡單、最穩健的方式是:

  1. 使用 Visual Studio 建立「MFC 單一文件」專案(Single Document),這會自動生成 CWinApp、CDocument、CView、CMainFrame 等核心類別。
  2. 在專案中新增一個對話框資源(IDD_DIALOG1),並建立對應的 CDialogEx 派生類別(如 CMyDialog)。
  3. 在主視圖(CView)或主框架(CMainFrame)的選單/工具列按鈕處理函式中,以 DoModal() 或 Create() 方式啟動該對話框。
  4. 在對話框類別中加入繪圖邏輯(如 OnPaint() 繪製折線圖),或將對話框作為控制面板,實際繪圖仍在 CView::OnDraw() 中進行,透過文件物件傳遞資料。

為何不建議「對話框專案加文件視圖」

對話框專案預設無 CDocument、CView、CMainFrame,需手動新增類別、修改 InitInstance()、處理框架視窗建立、訊息路由等,極易遺漏細節導致崩潰或資源洩漏。反向操作(單一文件專案加對話框)只需幾分鐘,且完全符合 MFC 設計初衷。

小結

遵循「專案類型決定架構」原則,需要文件/視圖功能時,請直接建立對應專案類型,再擴充對話框。這能節省大量除錯時間,也讓代碼結構清晰、易於維護。

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