作者刘涛
使用过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、添加代码编译运行程序。
三、程序代码
racknerd怎么样?racknerd今天发布了几款美国特价独立服务器的促销,本次商家主推高配置的服务器,各个配置给的都比较高,有Intel和AMD两种,硬盘也有NVMe和SSD等多咱组合可以选择,机房目前有夏洛特、洛杉矶、犹他州可以选择,性价比很高,有需要独服的朋友可以看看。点击进入:racknerd官方网站RackNerd暑假独服促销:CPU:双E5-2680v3 (24核心,48线程)内存...
SoftShellWeb是一家2019年成立的国外主机商,商家在英格兰注册,提供的产品包括虚拟主机和VPS,其中VPS基于KVM架构,采用SSD硬盘,提供IPv4+IPv6,可选美国(圣何塞)、荷兰(阿姆斯特丹)和台湾(台北)等机房。商家近期推出台湾和荷兰年付特价VPS主机,其中台湾VPS最低年付49美元,荷兰VPS年付24美元起。台湾VPSCPU:1core内存:2GB硬盘:20GB SSD流量...
全球领先的IDC服务商华纳云“美国服务器”正式发售啦~~~~此次上线的美国服务器包含美国云服务器、美国服务器、美国高防服务器以及美国高防云服务器。针对此次美国服务器新品上线,华纳云也推出了史无前例的超低活动力度。美国云服务器低至3折,1核1G5M低至24元/月,20G DDos防御的美国服务器低至688元/月,年付再送2个月,两年送4个月,三年送6个月,且永久续费同价,更多款高性价比配置供您选择。...