第三部分:MFC樣式
控制是用來建立Windows應用程式使用者介面的使用介面物件。你所見到的大部分Windows應用程式和對話方塊只不過是由一些控制所組成的、用來實現程式功能的東西。為了建立有效應用程式,你必須完全理解在Windows應用程式中應該如何合理的使用控制。有六個基本的控制:CStatic、CButton、CEdit、CList、CComboBox和CScrollBar。另外,Windows 95又增加了15增強了的控制。你需要理解的是那個控制能做些什麼、你應該如何控制它的外表和行為以及如何讓控制能響應使用者事件。只要掌握了這些,再加上掌握了菜單和對話方塊,你就可以建立你所想象的任何Windows應用程式。你可以象本教程這樣用程式碼來建立控制,也可以使用資源編輯器通過資源檔來建立。當然,對話方塊編輯器更方便些,它對於已經基本掌握了控制的情況下特別有用。
最簡單的控制是CStatic, 它是用來顯示靜態文本的。CStatic類沒有任何資料成員,它只有少量的成員函數:建構函式、Create函數(用於擷取和設定靜態控制上的表徵圖)等等。它不響應使用者事件。因為它的簡單性,所以最好把它作為學習Windows控制的開端。
在本講中,我們從CStatic著手,看一下如何修改和定製控制。在下一講中,我們將學習CButton和CScrollBar類,以理解事件處理的概念。一旦你理解和掌握了所有控制極其類,你就可以建立完整的應用程式了。
基 礎
MFC中的CStatic類是用來顯示靜態文本資訊的。這些資訊能夠可以作為純資訊(例如,顯示在資訊對話方塊中的錯誤訊息), 或作為小的標籤等。在Windows應用程式的檔案開啟對話方塊中,你會發現有六個這樣的標籤。
CStatic控制還有幾種其它的顯示格式。你可以通過修改標籤的樣式來使它表現為矩形、邊框或表徵圖等。
CStatic控制總是作為子視窗的形式出現的。典型情況下,其父視窗是應用程式的主視窗或對話方塊。正如上一講所介紹的,你用兩行代碼就可以建立一個靜態控制:
CStatic *cs;
...
cs = new CStatic();
cs->Create("hello world",
WS_CHILD|WS_VISIBLE|SS_CENTER,
CRect(50,80, 150, 150),
this);
這兩行代碼是典型的MFC建立所有控制的代碼。調用new來為CStatic類的案例分配記憶體,然後調用類的建構函式。建構函式是用來完成類所需要的初始化功能的。Create函數建立控制並把它放到螢幕上。
Create函數有五個參數:
lpszText: 指定了要顯示的文本。
rect: 控制文本地區的位置、大小和形狀。
pParentWnd: 指明CStatic控制的父視窗。該控制會出現在其父視窗中,且其位置是相對於其父視窗的使用者地區而言的。
nID: 整數值,表示該控制的標識符。
dwStyle: 最重要的參數。它控制著控制的外觀和行為。
CStatic樣式
所有的控制都有各種顯示樣式。樣式是在用Create函數建立控制時傳遞給它的dwStyle參數所決定的。對CStatic有效樣式簡介如下: