2008年5月28日 星期三

改變MFC中CFormView的視窗式樣, 以及改變視窗標題

利用MFC Wizard建立一個MFC專案, 並且選擇產生CFrameWnd的模式, MFC Wizard會幫你產生以下檔案 :

  1. 繼承CWinApp的檔案 (專案名稱.cpp .h)
  2. 繼承CDocument的檔案(專案名稱Doc.cpp .h)
  3. 繼承CFormView or CView的檔案(專案名稱View.cpp .h)
  4. 繼承CFrameWnd的檔案 (MainFrm.cpp MainFrm.h)
  5. stdafx.cpp stdafx.h
  6. 資源檔
其中的Doc檔是用來處理資料的部分, View檔是視窗的顯示, 而MainFrm檔則是主框架的運作.
在CWinApp裡面會根據你選擇是SDI(Single Document Interface)或是MDI(Multiple Document Interface)產生控制Doc, View和MainFrm的元件.

因為控制主框架(視窗)是由MainFrm所控制的, 所以改變視窗式樣也是在這裡面改變.
在MainFrm.cpp裡面的PreCreateWindow(CREATESTRUCT& cs), cs這個變數就是用來改變視窗式樣的變數. 它是由多個控制視窗的flag所組成的.
例如 :

cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
| WS_THICKFRAME | WS_MINIMIZEBOX | WS_SYSMENU;

由這樣的方式就能控制視窗式樣.

改變視窗的標題則是在View裡面取得Doc的變數然後進行設定 :

CServerMonitorDoc* pMyDoc = GetDocument();
pMyDoc->SetTitle("My Application Name");

其中的CServerMonitorDoc是看你Doc的class名稱為何.

參考資料 :
http://www.microsoft.com/msj/0198/c0198.aspx

沒有留言: