作者刘涛
使用过OFFICE2000的人都知道它的界面尤其是菜单和工具条可谓是让人耳目一新。虽然Visual C++开发工具也提供了对工具条的支持但通常只是按纽的集合不能直接加入组合框等控件实现OFFICE2000风格的工具条。本实例针对其中的一个细节讲述了在Windows环境下用Visual C++6.0在工具条中加入平面组合框控件方法并实现了组合框的消息响应函数使得我们的程序看上去更加专业。程序编译运行后的效果如图一所示
图一、工具栏中的平面组合框控件
一、实现方法
用应用程序向导AppWizard生成一个基于单文档的工程Project 首先打开VC的工具条资源编辑器在工具条要加入组合框的地方加一个空按纽并将资源共享ID定义为ID_TOOL_ZOOM。
其次从面向对象的思想出发一个工具条作为一个整体应该封装为一个类组合框控件应该作为这个类的一个成员变量。因此用Visual C++的类向导CLASSWIZARD生成一个以CToolBar为基类的的新类CMainToolBar并加入成员变量CFlatComboBox m_combobox
CflatComboBox为平面组合框类。
在向工具条添加控件的过程中调用CToolBar: :GetItemID 函数来获取每个按钮的ID直到搜索到"空"按钮。 CToolBar: :GetItemID 函数的原型为 UINT GetItemID( intnIndex ) const参数nIndex为当前按钮在工具条中的索引号该索引号的基准值为"0"。找到"空"按钮后调用CToolBar: :SetButtonInfo 函数设置按钮的宽度信息。最后调用
CComBox: :Create 、 CcomBox: :AddString 等函数动态创建平面组合框控件下面的代码实现了平面组合框控件的动态创建
但是仅仅产生平面组合框是不够的必须实现组合框的消息响应函数才能方便地运用组合框。在Vsiaul C++中消息响应函数通常都是用类向导来实现但是此处由于组合框是用函数创建的所以必须亲自动手来写代码也并不麻烦与类向导生成的代码格式是一样的可以参照来写。下面代码定义了组合框的选择变化消息响应函数
二、编程步骤
1、启动Visual C++6.0生成一个单文档项目将该项目命名为"ToolBar"
2、通过资源编辑器新增一个工具按钮 "Caption"设置为空 ID资源标志符命名为ID_TOOL_ZOOM
3、启动Class Wizard从CToolBar派生一个新类CMainToolBar
4、在MainFrm.h文件中添加#include "MainToolBar.h"语句然后找到CToolBarm_wndToolBar语句用CMainToolBar代替CToolBar
5、添加代码编译运行程序。
三、程序代码
Digital-VM商家目前也在凑热闹的发布六月份的活动,他们家的机房蛮多的有提供8个数据中心,包括日本、洛杉矶、新加坡等。这次六月份的促销活动全场VPS主机六折优惠。Digital-VM商家还是有一点点特点的,有提供1Gbps和10Gbps带宽的VPS主机,如果有需要大带宽的VPS主机可以看看。第一、商家优惠码优惠码:June40全场主机六折优惠,不过仅可以月付、季付。第二、商家VPS主机套餐1...
亚洲云Asiayun怎么样?亚洲云Asiayun好不好?亚洲云成立于2021年,隶属于上海玥悠悠云计算有限公司(Yyyisp),是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。Asiayun提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括B...
ftlcloud(超云)目前正在搞暑假促销,美国圣何塞数据中心的云服务器低至9元/月,系统盘与数据盘分离,支持Windows和Linux,免费防御CC攻击,自带10Gbps的DDoS防御。FTL-超云服务器的主要特色:稳定、安全、弹性、高性能的云端计算服务,快速部署,并且可根据业务需要扩展计算能力,按需付费,节约成本,提高资源的有效利用率。活动地址:https://www.ftlcloud.com...