ToolBar多彩工具栏制作详细过程

来源:互联网 发布:js 掷骰子动画 编辑:程序博客网 时间:2024/04/29 11:02

一、准备:

1.VC多彩工具栏制作软件

            下载网址:http://download.csdn.net/detail/p40614021/4138942

2.好看的图标 推荐地址:http://www.easyicon.net/iconsearch/

二、通过制作软件制作完后保存成.bmp类型的图片 尺寸:(num*icon.length,icon.width)

注意:下载的时候所有图标都是一样的大小,如:24*24,32*32.......

三、加入到VC程序中

1. 加入制作好的位图,在添加资源中添加bitmap资源,ID改为IDB_TOOLBAR

2. 修改资源中ToolBar中的IDR_MAINFRAME,你加载的位图中有几个图标就在其中加载几个按钮,修改每个按钮的资源ID,并且设置好整个ToolBar的大小与在制作软件中加入的图片是一样的大小,如24*24,32*32.....

3. 在CMainFrame类中找到OnCreate()函数

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failed to create toolbar\n");

return -1;      // fail to create

}

/**************添加的代码START*******************

HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),

MAKEINTRESOURCE(IDB_TOOLBAR),//加载IDB_TOOLBAR,加入的bitmap源的ID

IMAGE_BITMAP, //按位图格式

0,0, // cx,cy

LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );

CBitmap bm;

bm.Attach(hbm);

//图标大小为:24*24 256色图像必须使用ILC_COLOR8

//162432位图使用ILC_COLOR162432

//参照http://msdn.microsoft.com/zh-cn/library/b9h1bwdk(v=vs.80).aspx

m_ilToolBar.Create(24,24,ILC_COLOR24 | ILC_MASK, 0, 0);

m_ilToolBar.Add(&bm,(CBitmap*)NULL);

m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilToolBar);

************添加的代码END**************************/

另外一种方法:

//设Θ?置?ToolBar的?图?标括?列表括?

m_ilTB.Create(32, 32, TRUE | ILC_COLOR8, 4, 0);

HICON hIcon = NULL;

hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 

MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 32, 32, 0);

m_ilTB.Add(hIcon);

hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 

MAKEINTRESOURCE(IDI_ICON2), IMAGE_ICON, 32, 32, 0);

m_ilTB.Add(hIcon);

hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 

MAKEINTRESOURCE(IDI_ICON3), IMAGE_ICON, 32, 32, 0);

m_ilTB.Add(hIcon);

hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 

MAKEINTRESOURCE(IDI_ICON4), IMAGE_ICON, 32, 32, 0);

m_ilTB.Add(hIcon);

m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilTB);

//

// TODO: Delete these three lines if you don't want the toolbar to

//  be dockable

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);