第四章 菜單的使用
菜單是windows風格的應用程序最方便最常用的,也是最歡迎的工具。本章介紹如何在程序中創建菜單的方法。
本章要點
1 設計菜單
2 爲菜單創建類文件
3 將菜單加入到對話框中
4.1 創建一個菜單資源
要使用菜單先要在工程的資源中增加一個菜單資源,方法如下:
1 打開工作區的資源頁;
2 右擊第一行某某resources,在快捷菜單中選“插入或Insert",打開如下的對話框;
3 選定MENUS,點擊“新建”,一個菜單就加入到資源中了,同時打開設計窗口待用戶編輯它。
圖chap04-02
編輯菜單
在前面打開的菜單設計窗口中,用鼠標右擊第一個菜單,打開屬性對話框;輸入菜單名,如文件菜單,標題輸入"&File"。
圖chaop04-03
關閉屬性對話框,File菜單設計好了。此時下面就多出來一個空白菜單項,用同樣的方法設計菜單項,在我們的程序中標題爲Curent &Speed, ID爲ID_FILE_CURRENTSPEED。再添加一條橫線,這隻要在屬性中選取“分隔符”就行。類似地,添加&Exit菜單,ID爲ID_FILE_EXIT。
設計完文件菜單,再用鼠標右擊第二個菜單的空白矩形,添加Help菜單,標題爲&Help。添加About菜單項,標題爲&About。字母&的作用是是使後續字母(如F)添加下劃線,這就添加了快捷鍵ALT+F,使得按快捷鍵和點擊菜單有相同的功效。關閉菜單設計窗口,菜單的可視化設計完成。
4.2 爲菜單和對話框類建立關聯
創建了菜單資源後還需要把這菜單和對話框類建立關聯,這樣菜單纔會出現在該對話框中。方法是:在工作區先選定該菜單,打開類嚮導;此時會打開一個"Adding a class"對話框,選擇"Select an exisiting class",點OK按鈕。
圖chap04-04
這時再打開主對話框的屬性對話框,就可以發現MENU屬性列表中就有了IDR_MENU1菜單。選中它,關閉屬性窗口,菜單就可以使用了。
圖chap04-05
4.3 創建使用菜單的對話框程序
1 Speed.exe程序的界面和功能
圖chap04-06
程序運行時有一個編輯框,只能夠輸入整數。File菜單中第一項將彈出一個消息框,顯示編輯框中輸入的數。Help菜單中的About菜單項將彈出About對話框。
2 創建Speed.exe程序的工程
用應用程序嚮導在D:\myVC\CHO4位置創建Speed程序(工程)。
3 設計應用程序的界面
1 如圖05設計界面,編輯框的ID爲IDC_SPEED_EDIT,要只允許輸入數字,選中number複選框。
2 按本章敘述的方法設計菜單並與對話框類ID_SPEED_DIALOG建立關聯。
此時編譯和運行就可以看到上述結果,但點菜單沒有反應。
4.4 編寫代碼
爲了獲取編輯框的中的信息,給編輯框申明一個int value類型的變量m_SpeedEdit。
1 [File/Exit]菜單項的代碼是OnOK();
2 [File/Current]菜單項的代碼是
char strSpeed[15];
itoa(m_SpeedEdit, strSpeed, 10);
CString str = "Current speed is " ;
str += strSpeed ;
MessageBox(str);
其中用itoa函數把十進位的數字(參數1)轉化成字符串(參數2),最後用信息框顯示結果。
3 [About]菜單項的代碼是
CAboutDlg dlg;
dlg.DoModal();
功能是建立About對話框對象,打開該對話框。
4 爲了編輯框的輸入能夠更新變量m_SpeedEdit的值,還需要在函數OnChangeSpeedEdit()中增加一語句:
UpdateData(TRUE);
OnChangeSpeedEdit()函數在輸入任一字符時被調用。UpdateData()函數的參數爲TRUE時對話框中的控件允許更新。
現在完成了全部設計,編譯和運行之。
—END—