標籤:ram 實現 rop system 標題 color 比較 frame 視圖
轉自:http://www.jizhuomi.com/software/149.html
對話方塊,大家應該很熟悉了,在我們常用的軟體中大多都有對話方塊介面,例如,360安全衛士的主介面其實就是個對話方塊,只是它做了很多美工方面的工作,將其大大美化了。
建立對話方塊主要分兩大步,第一,建立對話方塊資源,主要包括建立新的對話方塊模板、設定對話方塊屬性和為對話方塊添加各種控制項;第二,產生對話方塊類,主要包括建立對話方塊類、添加控制項變數和控制項的訊息處理函數等。
本節先講講怎樣建立對話方塊模板和設定對話方塊屬性。
建立基於對話方塊的應用程式架構
之前建立的HelloWorld程式是單文檔應用程式,產生了多種視窗,如果用它來將講建立對話方塊的話可能有些複雜,對大家單純理解對話方塊有點影響,所以這裡再建立一個基於對話方塊的應用程式,用來實現加法運算的功能。建立步驟同單文檔應用程式大同小異,簡單步驟如下:
1.選擇功能表項目File->New->Project,彈出“New Project”對話方塊。
2.左側面板中Installed Templated的Visual C++下選擇MFC,中間視窗中選擇MFC Application,然後在下面的Name編輯框中鍵入工程名稱,本例取名“Addition”,在Location編輯框中設定工程的儲存路徑。點“OK”。
3.點“Next”到“Application Type”對話方塊,在Application type下選擇Dialog based(基於對話方塊),其他使用預設設定,點“Finish”。
我們可以在Solution Explorer視圖中看到,此工程的檔案要比單文檔應用程式少的多,在Class View中主要有三個類:CAboutDlg、CAdditionApp和CAdditionDlg。CAboutDlg是應用程式的“關於”對話方塊類,CAdditionApp是由CWinApp派生的類,CAdditionDlg是主對話方塊類,主對話方塊也就是此應用程式運行後顯示的主要介面。
註:如果在VS2010中找不到Solution Explorer或Class View等視圖,可以在功能表項目View下找到對應視圖選項選擇即可。在VS2010的使用介紹中已經有講解。
在Resource View視圖中可以看到工程Addition的資源樹,展開Addition.rc,下面有四個子項:Dialog(對話方塊)、Icon(表徵圖)、String Table(字串表)和Version(版本)。然後展開Dialog項,下面有兩個對話方塊模板,其ID分別為:IDD_ABOUTBOX和IDD_ADDITION_DIALOG,前者是“關於”對話方塊的模板,後者是主對話方塊的模板。ID是資源的唯一標識,本質上是一個不帶正負號的整數,一般ID代表的整數值由系統定義,我們無需幹涉。
對話方塊模板
可見對於主對話方塊來說,建立對話方塊第一步中的建立新的對話方塊模板已經由系統自動完成了。而如果是再添加對話方塊需要建立新的對話方塊模板時,需要在Resource View的“Dialog”節點上點右鍵,在右鍵菜單中選擇“Insert Dialog”,就會產生新的對話方塊模板,並且會自動分配ID。
在Resource View的資源樹中雙擊某個ID,可在中間地區內顯示相應的資源介面。雙擊IDD_ADDITION_DIALOG時,中間地區就會顯示Addition對話方塊模板。如:
設定對話方塊屬性
在Addition對話方塊模板上點右鍵,然後在右鍵菜單中選擇Properties,則在右側面板中會顯示對話方塊的屬性列表。如:
這裡對經常使用的幾個屬性作簡單說明,並對Addition對話方塊進行屬性設定說明。
1.ID:對話方塊ID,唯一標識對話方塊資源,可以修改。此處為IDD_ADDITION_DIALOG,我們不修改它。
2.Caption:對話方塊標題。此處預設為Addition,我們將其修改為“加法計算機”。
3.Border:邊框類型。有四種類型:None、Thin、Resizing和Dialog Frame。我們使用預設的Dialog Frame。
4.Maximize:是否使用最大化按鈕。我們使用預設的False。
5.Minimize:是否使用最小化按鈕。同樣我們使用預設的False。
6.Style:對話方塊類型。有三種類型:Overlapped(重疊的視窗)、Popup(彈出式視窗)和Child(子視窗)。彈出式視窗比較常見。我們使用預設的Popup類型。
7.System Menu:是否帶有標題列左上方的系統功能表,包括移動、關閉等功能表項目。我們使用預設的True。
8.Title Bar:是否帶有標題列。我們使用預設的True。
9.Font(Size):字型類型和字型大小。如果將其修改為非系統字型,則Use System自動改為False。而如果Use System原來為False,將其修改為True,則Font(Size)自動化佈建為系統字型。這裡我們使用預設的系統字型。
根據以上說明,其實我們只修改了標題屬性。這時我們運行此程式後的介面如下:
VS2010-MFC(對話方塊:建立對話方塊模板和修改對話方塊屬性)