VC真彩工具条

 作者: skyformat99

下载源代码


例子程序最终效果图:



  一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。最近终于有所发现,因此在这里将自己在制作真彩工具条方面的小经验介绍给大家,以期抛砖引玉。
  在这里将介绍两个重点的内容,一个是制作真彩工具条的图形工具 Visual toolbar,另一个是在程序中显示工具条的类CtrueColorToolBar。有了这两个利器,几乎能够非常简单快速的制作任何真彩工具条。呵呵。

1、Visual Toolbar工具

  Visual Toolbar 是一个工具条制作工具,也是目前唯一的这样的小工具,几乎是一直梦寐以求的超级好用的小工具。呵呵,当我第一次拿到这个东西的时候,只有一个感慨“太实用了!”。
  不知道大家以往作工具条的时候是怎样的,反正本人觉得很繁琐,程序员又不是美工,可是为了界面的pp,只好硬着头皮上了,不可能自己画那些图标,那就采用现成的吧,于是只能上网找一些好看得xp图标,然后用 photoshop 拼啊拼得,一不小心就得从来,费时费力。不知道别人都怎么做的,反正搜索了所有的制作真彩工具条的文章,都没有发现作者提供这样的信息或者方法。每次都很纳闷,当然也有一些作者提供了用ico图标作工具条的方法,不够相比这个有点复杂了。

Visual Toolbar 的下载地址:http://visualtoolbar.126.com/

界面非常简单,一看就能够理解和动手操作。只需要加入图标就能够生成。如图所示:



  简单吧,把你找到的一些pp的图标一个个加进去吧,就能自动合并成一个真彩工具条位图,而且还可以再拆分,重新组合,前后位置也可以从新排列。呵呵,不到一分钟,一个pp的bmp位图就完成了。而且还能同时生成normal图,hot图,和disable图。

有了这些位图,真彩工具条就算搞定了一半了。

2、CtrueColorToolBar类

  CtrueColorToolBar 类是一个专门加载真彩位图制作 toolbar 的很实用的类。

这个类的下载地址是:http://www.codeproject.com/docking/TrueColorToolBar.asp

  确实不错,用这个类配合上面的工具,是一个很不错的组合。下面就用一个例子一步步来实现吧。系统 windwos2000+VC 6.0 + sp5。假设用 Visual toolbar 制作好的工具条如图:

  • (1) 先建立一个基于MFC的SDI标准程序,没啥好说的,一路默认吧。
  • (2) 这个时候程序会默认生成一个工具条,如图:



    先这样放着吧,不理会。
  • (3)将CtrueColorToolBar类的两个文件拷贝到程序的目录下,并且在FileView中右键单击项目,加入CtrueColorToolBar类的两个文件,如图:



    将这两个文件导入进去。然后从新编译一下程序,这时候会发现多了一个CtrueColorToolBar类,这就是了。
  • (4) 下面将我们准备好的工具条位图加入到程序中吧,Visual Toolbar能同时生成normal位图和diable位图,假设如下面的所示:

    一个是normal图形,一个是disable图形:
     

    Normal 位图

    Disable 位图

      先将这两个位图文件拷贝到程序的 res 目录下面,然后在 ResourceView 中单击右键,用 Import 导入这两个位图,程序会自动生成两个ID号,当然你可以修改ID为IDB_NORMAL和IDB_DISABLE。可以发现,这个例子想要的是7个 48×48 拼成的工具条。这个时候将用到系统自动生成的工具条了。

  • (5)找到 toolbar 资源下的 IDR_MAINFRAME 我需要的只是7个工具条按钮,这里多了几个,删除多余的吧。由于我们现在需要增加的是一个48×48的大小的按钮,所以还得修改按钮大小。双击其中任何一个按钮,修改大小为: 而每个按钮都默认了ID和操作,所以暂时先不管了。
  • (6)找到程序的CmainFrame框架类的成员变量m_wndToolBar,这东西就是工具条变量了,系统默认的是Ctoolbar类,将Ctoolbar修改成CtrueColorToolBar即可。 在程序的引用CtrueColorToolBar类的文件中包含其头文件,本例子是文件MainFrm.h的开头,增加一句:
    #include "TrueColorToolBar.h" 
    
    然后找到程序CmainFrame框架类的操作方法OnCreate函数。这里可是产生工具条的地方。增加这样一条语句:
    m_wndToolBar.LoadTrueColorToolBar( 48, IDB_NORMAL, IDB_NORMAL, IDB_DISABLED);
    
    3个参数分别代表的意义是:48表示工具条按钮大小是48×48,第二个是normal工具条位图ID,第三个是hot工具条位图ID,最后一个是disable工具条位图ID。 增加的位置你参考例子代码。 现在可以编译运行了,怎么用,真彩工具条出来了吧。
  • (7)最后,你可以和一般程序一样,对系统产生的toolbar资源下的IDR_MAINFRAME工具条的按钮进行设置,编写相应的响应函数即可。例子程序中还有两个位图也添加到资源中了,你可以修改上面m_wndToolBar.LoadTrueColorToolBar函数中后3个参数看看效果,就知道了。
3、说明
  本文很详细的介绍了制作真彩工具条的方法,并推荐了两个工具。个人感觉这种方法比较快速简单。希望能够给初学者提供一些帮助,也希望能够抛砖引玉得到其它好的方法。(希望站长能够允许转载到其它网站)。
1. 增加,删除,排列位图按钮图片; 2. 详细记录每个新增图片的尺寸,大小,颜色深度,所在路径; 3. 图片来源可以有很多种格式(例如:*.ICO,*.BMP,*.JPG,*.GIF,*.PNG,*.TIF,...),同时也可以将程序中产生的图像存成多种格式; 4. 自动预览合成的图像,支持图像输出存盘; 5. 自动生成禁止(灰度)图像,支持图像输出存盘; 6. 支持16色,256色,真彩色和 32 位色位图图像; 7. 支持16X16, 24X24,32X32,48X48大小的图像输入,特别地,可以自定义将要生成图标的尺寸; 8. 支持从剪贴板输入位图图像,也支持将合成图像放入剪切板供其它图像处理程序处理; 9. 支持图片顺序调整,并可实时显示调整后所合成图像; 10. 支持鼠标右键菜单功能; 11. 选择图片时,支持图片自动预览; 12. 合并后图片(或其它可被横向等分的宽图片)可自动分解为原来未合并前的图片,支持图片顺序重新调整。 13. 支持透明色:图片背景色可设置为透明,用户可选择何种颜色作为透明色,此功能对带界面皮肤的软件来说,很有用处,无论皮肤界面的颜色如何变化,北京都能融入新的界面中; 14. 可将多个不同背景色的图片合成一个大图,并重新设置背景色; 15. 支持自选取背景色和手动设置背景色,特别地,设置颜色时有屏幕取色功能; 16. 程序中所有可以选定的图片均可以各种图片格式保存至磁盘;
一次提供2个软件均已破解,可直接注册使用。 这两个软件各有特色,本人均使用过。特别说明的是,VisulToolBar1.5由于网上该版本大多不能使用,这是我花费了大量时间才找到的可用版本,共享出来方便下载。 工具简介: 对程序员来说,可能经常要设计工具栏(Toolbar)以及修改工具栏中的某个图标。有时需要将各种小图标合并起来,以用于图像列表(Image List)。最常见的是在工具栏去掉一个图标或加入一个已有图标。但Visual C++的工具栏编辑器很难满足我们的要求。从而设计一个漂亮的真彩工具栏变成了一件很麻烦的事情。 您或许有过这样的经历,为了设计一个漂亮的工具条,你要先找着或者自己做出每个小图标, ,最后为了把这些四处搜刮的小图片,凑成一副完整的工具条位图资源,您带上您的老花镜, 小心谨慎地对齐一个个图片,累的是腰酸背痛腿抽筋,可是往往效果都不理想。最要命的是,下次你想再中间插入一个按钮,上面的过程,您又得重新来过。有时候,您要花几个小时的时间,来生成真彩工具条的位图资源!现在好了,工具栏生成器(Toolbar Creator)可以自动读入小位图文件(支持16×16,24×24,32×32,48×48以及任意自定义的尺寸),自动合并所有小的位图,然后输出您整合以后的位图资源文件。此外,工具栏生成器(Toolbar Creator) 允许用户动态调整按钮图标的顺序!合并以后的位图,再次读入的时候,可以自动重新分割成各个合并前的小图标,方便您插入新的按钮图标!支持剪贴板操作,可以通过剪贴板输入小按钮的位图。工具栏生成器(Toolbar Creator)可以自动生成禁止按钮的灰度图像,所有操作,瞬间完成!工具栏生成器(Toolbar Creator)尤其适合Visual C++ 程序开发人员,可以自动生成真彩色的位图资源,让您的程序更专业。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值