工具条的编程技术

工具条的编程技术

ID:15078924

大小:337.50 KB

页数:11页

时间:2018-08-01

工具条的编程技术_第1页
工具条的编程技术_第2页
工具条的编程技术_第3页
工具条的编程技术_第4页
工具条的编程技术_第5页
资源描述:

《工具条的编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、工具条的编程技术本节将讨论一些与工具条有关的编程技术,主要包括命令处理、命令更新、按钮风格和工具条的隐藏/显示等技术。【实例5-4】工具条的编程技术光盘路径/05/record/实例目的工具条的编程技术本实例通过创建一个录音的窗口,在窗口上添加录音的基本工具按钮来学习工具条的编程技术。1.创建工程启动MicrosoftVisualStudio6.0,在IDE中依次选择“FileàNew”菜单命令,或直接按快捷键“Ctrl+N”,打开“New”对话框。在“New”对话框中单击“Projects”选项卡,在列表框中选择“MFCAppWiz

2、ard(.exe)”项,在“Projectname”文本框中输入“record”,其他使用默认值,单击“OK”按钮,弹出“MFCAppWizard-Step1”对话框。在“MFCAppWizard-Step1”对话框中,选中“MultipleDocument”单选按钮,其他使用默认值,然后单击“Finish”按钮,在弹出的“NewProjectInformation”对话框中单击“OK”按钮,就可以完成工程的创建。2.添加资源在工作区中选择的ResourceView标签,转到资源编辑窗口,双击“ToolbaràIDR_MAINFRAM

3、E”条目打开该菜单资源的编辑界面。双击对后面的空白虚线框,为其添加一个工具按钮,其ID为:ID_RECORD_START。用2的方法添加另一个工具按钮,其ID为:ID_RECORD_STOP。完成添加后的界面,如图5-50所示。图5-50添加工具3.添加响应函数要使菜单和工具条执行命令,光为它们指定命令ID是不行的,必须为每个命令ID定义命令处理函数。如果不为命令定义命令处理函数或下面将要提到的命令更新处理函数,则框架将自动使该命令对应的菜单项和按钮禁止(灰化)。在IDE主菜单项中依次选择“View”→“ClassWizard”,打开

4、“MFCClassWizard”对话框,选择“MemberMaps”选项卡。在“Project”下拉列表框中选择“record”,在“Classname”栏中选择“CMainFrame”,在“ObjectIDs”栏中选择“ID_RECORD_START”,在Messages栏中双击“COMMAND”项,则ClassWizard会弹出一个对话框询问命令处理函数的名字,使用其提供的函数名即可。单击“OK”按钮后,函数OnRecordStart就被加入到了Memberfunctions栏中。仿照第步,为ID_RECORD_STOP定义一个命

5、令处理函数。单击“OK”按钮关闭ClassWizard对话框。这时读者会发现CMainFrame类多了两个成员函数,OnRecordStart和OnRecordStop。创建后的界面如图5-51所示。图5-51“MFCClassWizard”对话框4.添加代码现在要在这两个命令处理函数中插入相应的源代码以实现其功能。当然,这里不会真的实现开始录音和停止录音的功能。我们只是让这两个函数发出一个声音,象征性地表示功能的执行,具体代码如下所示。OnRecordStart和OnRecordStop函数:voidCMainFrame::OnRe

6、cordStart(){//TODO:AddyourcommandhandlercodehereMessageBeep((UINT)(-1));}voidCMainFrame::OnRecordStop(){//TODO:AddyourcommandhandlercodehereMessageBeep((UINT)(-1));}编译并运行record,可以看到Start和Stop命令已经可以执行了,如图5-52所示。图5-52运行程序结果5.命令更新虽然Start和Stop命令可以执行了,但是还有一个不足之处。在没有开始录音之前,St

7、op命令应该是禁止的,也即对应的菜单项和按钮应是禁止的,这是因为此时没有必要执行该命令。录音开始后,Stop命令应该允许,而Start命令则应变为禁止。我们可以利用MFC的命令更新机制实现此逻辑功能。在菜单下拉之前,或在工具条按钮处在空闲循环期间,MFC会发一个更新命令,这将导致命令更新处理函数的调用。命令更新处理函数可以根据情况,使用户接口对象(主要指菜单项和工具条按钮)允许或禁止。定义命令更新处理函数的方法如下。在IDE主菜单项中依次选择“View”→“ClassWizard”,或按快捷键“Ctrl+W”,打开“MFCClassW

8、izard”对话框,选择“MemberMaps”选项卡。在Classname栏中选择CMainFrame,在ObjectIDs栏中选择ID_RECORD_START,在Messages栏中双击UPDATE_COMMAND

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。