首先利用Visual Toolbar工具将自.bmp图片制作成工具条。Visual Toolbar工具可以利用Google去搜,尽管这款软件需要注册,但笔者不提倡下载注册机破解注册或者直接下载破解版。
然后在VC的资源中添加工具栏,导入已经制作好的工具条(此时为bmp格式),然后利用CtrueColorToolBar 类加载图片到工具条。CtrueColorToolBar 类的下载地址为:http://www.codeproject.com/docking/TrueColorToolBar.asp
以上两步可以参考《一步步制作真彩工具条》。
接下来就要将多个工具条加载到同一个工具栏里。我也是在网上找到的源代码,然后自己修改。不便赘述,直接贴上代码:
intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)
...{
if(CMDIFrameWnd::OnCreate(lpCreateStruct)==-1)
return-1;
if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|
CBRS_FLOAT_MULTI|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
...{
TRACE0("未能创建工具栏 ");
return-1;//未能创建
}
if(!m_wndStatusBar.Create(this)||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
...{
TRACE0("未能创建状态栏 ");
return-1;//未能创建
}
//TODO:如果不需要工具栏可停靠,则删除这三行
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
CRectrect;
//创建属性工具栏
//m_ProperBar.SetBorders(1,1,1,1);
if(!m_ProperBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|
CBRS_FLOAT_MULTI|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_ProperBar.LoadToolBar(IDR_TOOLBAR_PROPER))
...{
TRACE0("未能创建缩放工具栏 ");
return-2;//未能创建
}
m_ProperBar.LoadTrueColorToolBar(16,IDB_BITMAP_PROPER_HOT,IDB_BITMAP_PROPER_HOT,IDB_BITMAP_PROPER_DISABLED);
m_ProperBar.GetWindowRect(&rect);
rect.OffsetRect(1,0);
this->RecalcLayout();
m_ProperBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_ProperBar,AFX_IDW_DOCKBAR_TOP,&rect);
//创建缩放工具栏
//m_TestBar.SetBorders(1,1,1,1);
if(!m_ZoomBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|
CBRS_FLOAT_MULTI|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_ZoomBar.LoadToolBar(IDR_TOOLBAR_ZOOM))
...{
TRACE0("未能创建缩放工具栏 ");
return-2;//未能创建
}
m_ZoomBar.LoadTrueColorToolBar(16,IDB_BITMAP_ZOOM,IDB_BITMAP_ZOOM_HOT,IDB_BITMAP_ZOOM_DISABLED);
m_ZoomBar.GetWindowRect(&rect);
rect.OffsetRect(2,0);
this->RecalcLayout();
m_ZoomBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_ZoomBar,AFX_IDW_DOCKBAR_TOP,&rect);
//创建测试工具栏
//m_TestBar.SetBorders(1,1,1,1);
if(!m_TestBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|
CBRS_FLOAT_MULTI|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_TestBar.LoadToolBar(IDR_TOOLBAR_TEST))
...{
TRACE0("未能创建测试工具栏 ");
return-2;//未能创建
}
m_TestBar.LoadTrueColorToolBar(16,IDB_BITMAP_TEST,IDB_BITMAP_TEST_HOT,IDB_BITMAP_TEST_DISABLED);
m_TestBar.GetWindowRect(&rect);
rect.OffsetRect(1,0);
this->RecalcLayout();
m_TestBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_TestBar,AFX_IDW_DOCKBAR_TOP,&rect);
m_toolTip.Create(this);
//Addstooltipfortoolbar
m_toolTip.AddToolBar(&m_ProperBar);
return0;
}
但是这样做有一个问题,就是两个工具条之间有空白间隙,显得很难看,如下图所示。已经在论坛里发帖了,希望有高手指点一二。
高手给出的答案为:
这种效果是正常的,如果不想要这样,可以把CBRS_GRIPPER风格去掉,或者用CReBar。
分享到:
相关推荐
可以加载真彩色图像的工具栏按钮,找了很多资料,没有发现可参考的,写了一个单文档的程序,可以供参考
真彩色工具栏,包括完整的代码演示,非常好用~
VC工具栏上显示真彩色图像 VC工具栏上显示真彩色图像 VC工具栏上显示真彩色图像
支持真彩色工具栏for VC6 MFC,CTrueColorToolBar。 非常好用,亲身试用
VC++自定义彩色图标工具栏....(代码注释详细 易懂)鼠标指向时图标可变化。
如何在工具栏中显示16位真彩色位图源码 vc6
工具栏生成器(Toolbar Creator) 是专门为程序设计人员进行真彩色工具条设计的工具。 您或许有过这样的经历,为了设计一个漂亮的工具条,你要先找着或者自己做出每个小图标, ,最后为了把这些四处搜刮的小图片,凑成...
VC++自定义彩色图标工具栏....(代码注释详细 易懂。。。。)鼠标指向时图标可变化。。。
本资源提供一款制作彩色工具条的工具, 并提供一个封装类,在程序中实现彩色工具条的加载。 对需要做界面的朋友会有很大用途。
将工具栏变为彩色工具栏
Windows中带真彩图标的系统菜单实现一例
1.在VC6.0下实现彩色图标工具栏,可设置各图标按钮长宽。 2.当鼠标移动或点击工具栏图标时颜色变换,实现动态效果。 3.在每个按钮下提供文字显示的提示效果。
工具栏生成器(Toolbar Creator) 是专门为程序设计人员进行真彩色工具条设计的工具。 您或许有过这样的经历,为了设计一个漂亮的工具条,你要先找着或者自己做出每个小图标, ,最后为了把这些四处搜刮的小图片,凑成...
工具栏生成器(Toolbar Creator) 是专门为程序设计人员进行真彩色工具条设计的工具。 您或许有过这样的经历,为了设计一个漂亮的工具条,你要先找着或者自己做出每个小图标, ,最后为了把这些四处搜刮的小图片,凑成...
vs2010 CMFCToolBar 工具栏 如何修改背景颜色
位高人说过,VB6的Form是支持真彩色图标的,可以给窗体设置真彩色图标。 昨天上午我试了一下,新建一个标准EXE工程,然后随意找了一个高清真彩图标文件,给工 程的Form1设置Icon属性,成功了……… 但是,感觉它...
真彩色和256色索引图的相互转换,除去matlab自带函数外还附带kmeans算法
让VC60支持256真彩色图标,工具栏,包里有美化工具栏的全套资料,制作真彩色位图的软件,让VC60支持真彩色工具条的类,可直接用于自己的程序
彩色圆圈加载动画flash源码,内含fla\swf格式,并有AS类包、文档,真正的所有源代码
文章从如何实现获取24位真彩色位图信息的角度出发深入探讨了获 取此种类型图像数据的方法及其实现,通过实际编程实现解决图像结构数据类型与编程语言基本数据类型不一致的矛盾, 达到了获取24位真彩色位图信息的目的。