MFC实现真彩工具栏

MFC实现真彩工具栏和CReBar的使用

1.在实际项目中需要实现真彩工具栏,下面记录一下学习过程:

新建多文档应用工程。下面是在我以前的一个小项目中添加的:

首先再MainFrm.h头文件中添加一个CToolBar成员变量和一个CReBar成员变量:

CToolBar m_wndZoomBar;

在MainFrm.cpp的OnCreate函数中添加如下代码:

// 创建工具栏
if (!m_wndZoomBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndZoomBar.LoadToolBar(IDR_ZOOMBAR))
	{
		TRACE0("未能创建工具栏\n");
		return -1;      // 未能创建
	}

m_wndZoomBar.SetButtons(buttons, sizeof(buttons) / sizeof(UINT));

// 方式1:
// 使用ImageList添加位图列表
    CImageList Imagelist;
    Imagelist.Create(24, 24, ILC_MASK | ILC_COLOR32,4, 1);
	Imagelist.SetBkColor(RGB(255,255,255));
	m_Bitmap.LoadBitmap(IDB_BMP_ZOOMVIEW);
	Imagelist.Add(&m_Bitmap, RGB(255,255,255));
// 工具栏绑定图像列表
	m_wndZoomBar.GetToolBarCtrl().SetImageList(&Imagelist);
	Imagelist.Detach();
	m_Bitmap.Detach();

// 方式2:使用CTrueColorToolBar类:
// 在MainFrm.h中添加TrueColorToolBar.h,然后将原来的CToolBar类型改成CTrueColorToolBar类型。
   m_wndZoomBar.LoadTrueColorToolBar(24,IDB_BMP_ZOOMVIEW,IDB_BMP_ZOOMVIEW);


// 创建CReBar 对象
m_Rebar.Create(this);
// 将工具栏固定到CReBar对象中
	m_Rebar.AddBar(&m_wndZoomBar);
	m_Rebar.RedrawWindow();
	REBARBANDINFO rebandinfo;
	rebandinfo.cbSize = sizeof(rebandinfo);
	rebandinfo.fMask = RBBIM_BACKGROUND;
	m_wndZoomBar.ModifyStyle(0, TBSTYLE_TRANSPARENT);
	rebandinfo.hbmBack = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BMP_TBBACK));
	m_Rebar.GetReBarCtrl().SetBandInfo(0, &rebandinfo);




最后的运行效果如下:
在这里插入图片描述

欢迎大家一起交流和指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值