vc++6.0-菜单、工具栏和状态栏

实验目的: (1)创建一个单文档应用程序Ex_SDI。在“查看”菜单下添加一个子菜单“鼠标位置”,ID为ID_VIEW_MOUSE,当选择该菜单命令后,鼠标当前的位置显示到状态栏上,同时该菜单项呈选中状态。再次选择该菜单命令,状态栏不再显示当前鼠标位置,同时该菜单项的选中状态被去除。 (2)在工具栏上添加并设计一个工具按钮图标,使该按钮和ID_VIEW_MOUSE菜单命令联动,并添加一个快捷键Ctrl+M和该菜单命令联动。 (3)在窗口客户区中右击鼠标,弹出快捷菜单,显示主菜单“查看”中的菜单命令。结果如图5.1所示。

图5.1 Ex_SDI运行结果

实验仪器: 电脑一台(CPU:Inter(R) Xeon(R) E3-1230 v3 @ 3.3GHz 内存:8.0GB 操作系统:Win8.1虚拟机xp 使用软件:VC++ 6.0) 1.启动Visual C++ 6.0 打开计算机,启动Visual C++ 6.0系统。

2.用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_SDI ① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”标签,在应用程序项目类型列表框中选择MFC AppWizard(exe)的项目类型,将工程文件夹定位到“…\Visual C++程序\实验\实验5”,并在工程框中输入项目名Ex_SDI。

② 单击“确定”按钮,从出现的对话框中,选择单个文档(Single Document,SDI)应用程序类型。


③ 保留其他的默认选项,单击“完成”按钮出现一个对话框,显示出用户在步骤中作出的选择,单击“确定”按钮,系统开始创建。

3.添加菜单 ① 在项目工作区窗口中选择ResourceView页面,双击资源Menu项中的IDR_ MAINFRAME,则菜单编辑器窗口出现在主界面的右边,相应的Ex_SDI项目的菜单资源被显示出来。

② 单击“查看”菜单,则在该菜单的最后一项,Visual C++为用户留出了一个空位置,用来输入新的菜单项。 ③ 在菜单的空位置上双击鼠标左键,则出现它的属性对话框,如图5.2所示,在标题框中输入“鼠标位置(&M)\tCtrl+1”,在ID框输入该菜单项的资源标识:ID_VIEW_MOUSE,在提示框中输入“在状态栏上显示当前鼠标位置\n鼠标位置”,其中\n前一部分的文本是显示在状态栏上的,后一部分是联动的工具图标按钮的提示文本。

4.添加并设计一个工具图标按钮 ① 在项目工作区窗口的ResourceView页面中,双击Toolbar中的IDR_MAINFRAME,打开工具栏资源。

② 单击工具栏最右端的空白按钮,在资源编辑器的按钮设计窗口中绘制一个“箭头”,颜色为黑色,然后将其拖动到“帮助”按钮的前面,并使该按钮的前后均有半个空格,结果如图5.3所示。 ③ 双击刚才设计的工具按钮,在弹出的属性对话框中将其ID设为ID_VIEW_MOUSE。

5.菜单命令和工具按钮的更新 ① 为CMainFrame类添加一个BOOL型的成员变量m_bIsMouse,在CMainFrame类构造函数中将m_bIsMouse的初值设为FALSE。 ② 用MFC ClassWizard在CMainFrame类中添加工具按钮ID_VIEW_MOUSE的COMMAND和UPDATE_COMMAND_UI消息映射函数,并添加下列代码: ③ 编译运行并测试。

 

6.设置快捷键 ① 在项目工作区窗口的ResourceView页面中,双击Accelerator中的IDR_ MAINFRAME,打开快捷键资源。


② 双击加速键列表的最下端的空行,弹出如图5.4所示的Accel Properities对话框,选择菜单项ID_VIEW_MOUSE作为要联动的快捷键的ID号,然后单击“下一键”按钮,并按下Ctrl+1作为此加速键的键值。

③ 编译运行并测试。

7.添加状态栏窗格并显示鼠标当前位置 ① 打开MainFrm.cpp文件,将原先的indicators数组修改如下:

② 用MFC ClassWizard在CEx_SDIView类中映射WM_MOUSEMOVE(移动鼠标)消息,并在映射函数中添加下列代码: ③ 将MainFrm.h文件中的受保护变量m_wndStatusBar变成公共变量。

④ 在Ex_SDIView.cpp文件的开始处增加下列语句: ⑤ 编译运行并测试。 8.实现快捷菜单 ① 用MFC ClassWizard在CMainFrame类添加WM_CONTEXTMENU消息映射,并在映射函数添加下列代码:

② 编译运行并测试。 9.写出实验报告 分析上述运行结果以及思考与练习,写出实验报告。 思考与练习 实验结果分析 了解菜单的操作,定义快捷键,显示鼠标位置,实验中代码有问题,看书中的代码完成的实验。

  • 版权声明: 本博客所有文章,未经许可,任何单位及个人不得做营利性使用!转载请标明出处!如有侵权请联系作者。
  • Copyrights © 2015-2021 翟天野

请我喝杯咖啡吧~