MFC 工具栏 编辑器用法 toolbar

本文详细介绍如何在MFC应用程序中定制工具栏图标,包括使用TBCreator制作真彩工具栏位图,以及如何通过CtrueColorToolBar类加载这些位图。此外,还提供了手动替换工具栏按钮图标的步骤。

MFC 工具栏 编辑器用法 toolbar

参考文档:

帮工具栏换位图
http://www.cppblog.com/dragon/archive/2008/09/06/61176.html
vs2012 mfc 更改工具栏toolbar
https://blog.youkuaiyun.com/pqleo/article/details/42236513

1

在 res目录下面 如下文件
在这里插入图片描述
这个文件对应的是
在这里插入图片描述
在这里插入图片描述
如果想替换的话,
就可以直接在 visual stduio 打开的情况下,直接把toolbar1.bmp文件给替换了.
需要注意 button的个数和尺寸 ,需要和toolbar1.bmp 是对应的.
先删掉toolbar1.bmp

2
  1. 下载一个可以制作真彩工具栏图标的免费的小工具,叫做TBCreator。链接: http://pan.baidu.com/s/1mgDUn6g 密码: npsi

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

有一点要注意的是,这个软件有一个bug,在保存的时候不把默认出现的后缀名去掉,保存按钮会失效~~

  1. 下载CtrueColorToolBar 类,这是一个专门加载真彩位图制作 toolbar 的很实用的类。用这个类配合上面的工具,是一个很不错的组合。 这个类的下载地址是:http://www.codeproject.com/docking/TrueColorToolBar.asp(本文所在文件夹在含有该类的源文件同时存有一个demo)。

  2. 下面进入熟悉的VC,建立一个MFC标准程序,将2中下载的两个文件(一个CPP文件,一个H文件)添加到工程里面。然后重新编译一下程序,这时候会发现多了一个CtrueColorToolBar类。

  3. 下面将我们准备好的工具条位图加入到程序中吧,TBCreator能同时生成normal位图和diabled位图,假设如下面的所示:

一个是normal图形,一个是disable图形:
在这里插入图片描述
先将这两个位图文件拷贝到程序的 res 目录下面,然后在 Resource View 中单击右键,用 Import 导入这两个位图,程序会自动生成两个ID号,当然你可以修改ID为IDB_NORMAL和IDB_DISABLE。

可以发现,这个例子想要的是48×48 拼成的工具条(我们用TBCreator编辑的图像资源是48×48)。这个时候将用到系统自动生成的工具条了。找到 toolbar 资源下的IDR_MAINFRAME,这里可以根据需要进行更改按钮的数目,删除多余的吧。由于现在需要增加的是一个48×48的大小的按钮,所以还得修改按钮大小(很重要,不然你得到的图片会只有默认的16×16的效果)。双击其中任何一个按钮,修改大小为:48×48。

  1. 找到程序的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(可以使用normal的ID)工具条位图ID,最后一个是disable工具条位图ID。

增加的位置可参考例子代码。 只需要在工具栏生成之后就可以了,现在可以编译运行了,真彩工具条就可以出来了吧。
在这里插入图片描述
6. 最后,你可以和一般程序一样,对系统产生的toolbar资源下的IDR_MAINFRAME工具条的按钮进行设置,编写相应的响应函数即可。

这个位置和新增的工具栏保持数量大小位置一致就可以了

在这里插入图片描述

参考

找图标素材的网站 推荐几个

1、 http://www.easyicon.net/

2、https://www.iconfinder.com/

3、http://www.58pic.com/

3

帮工具栏换位图:
一般新建的工具栏上的按钮都是经过自己画图的,今天自己仿另一个系统做,无意中发现不用自己画图也行.最后我按下面的步骤做成功了!

新建一个基于对话框的工程;
(1)我加载的工具栏有十个6442的按钮,所以对话要事先拉得比工具栏宽!
(2)插入一个工具栏,初始ID为IDR_TOOLBAR1;然后在上面加十个64
42的按钮,我加载的位图是 640*42的,这个可以算出来吧!
(3)在C**Dlg类添加一个CToolBar变量m_ToolBar;再在这个类添加OnInitDialog()函数,在这函数里添加如下代码加载工具条到对话框!

if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_ToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0(“Failed to create toolbar\n”);
return -1; // fail to create
}

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
m_ToolBar.ShowWindow(SW_SHOW);
然后编译运行!
(4)右击你的工具栏点属性,看到文件名的内容是:res\toolbar1.bmp;这下你也自然想到工程下的res文件夹了吧,将你要加入的图片改名为toolbar1.bmp复制到res文件下去覆盖原来的toolbar1.bmp;这时VC会弹出一个对话框说"…\toolbar1.bmp这个文件已在Microsoft Developer Studio之外补修改,你要重新载入它吗?"
你按"是"就行了!
在这里插入图片描述
这时你编辑的工具栏相应会有变化的了!

(5)编译运行后是还不行的,那时我把我工具栏的左数第一个按钮改了ID再编译运行就OK了!

这个顺序不能倒啊,呵呵!因为toolbar1.bmp原先不存在的,编译运行时它会自己生成的,但我们生成后再去覆盖就不一样了!
以下是我做成功的界面和用到的toolbar1.bmp图(因为不能上传bmp格式,我把后缀改成jpg才上传了)
在这里插入图片描述

3

visual stduio 2017
如何手动修改 toolbar中的button中的图片
在这里插入图片描述

TBCreator 用法

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值