第四章 菜单的使用
菜单是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—