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
-
下载一个可以制作真彩工具栏图标的免费的小工具,叫做TBCreator。链接: http://pan.baidu.com/s/1mgDUn6g 密码: npsi
利用它,可以把找到的需要合并的图标加进去,自动合并成一个真彩工具条位图。而且可以再拆分,重新组合,前后位置也可以从新排列。呵呵,不到一分钟,一个pp的bmp位图就完成了。而且还能同时生成normal图和disabled图。
有一点要注意的是,这个软件有一个bug,在保存的时候不把默认出现的后缀名去掉,保存按钮会失效~~
-
下载CtrueColorToolBar 类,这是一个专门加载真彩位图制作 toolbar 的很实用的类。用这个类配合上面的工具,是一个很不错的组合。 这个类的下载地址是:http://www.codeproject.com/docking/TrueColorToolBar.asp(本文所在文件夹在含有该类的源文件同时存有一个demo)。
-
下面进入熟悉的VC,建立一个MFC标准程序,将2中下载的两个文件(一个CPP文件,一个H文件)添加到工程里面。然后重新编译一下程序,这时候会发现多了一个CtrueColorToolBar类。
-
下面将我们准备好的工具条位图加入到程序中吧,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。
- 找到程序的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;然后在上面加十个6442的按钮,我加载的位图是 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 用法

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

被折叠的 条评论
为什么被折叠?



