【MFC】带背景的工具栏
00. 目录
文章目录
- 00. 目录
- 01. 案例概述
- 02. 开发环境
- 03. 关键技术
- 04. 程序设计
- 05. 秘笈心法
- 06. 源码下载
- 07. 附录
01. 案例概述
带背景的工具栏可以为程序界面增添活力,使用户更容易使用。本案例实现了带背景的工具栏,效果如下图所示。
02. 开发环境
系统环境:Windows 10
开发环境:Visual Studio 2019或者以上
03. 关键技术
本案例主要通过CReBar类来完成,CReBar类是CToolBar的容器,将CToolBar对象添加到该容器中,即可实现带背景的工具栏。首先通过CReBar类的Create方法创建一个CReBar对象,然后通过AddBar方法将CToolBar对象添加进容器,通过设置REBARBANDINFO结构,可以将位图资源添加进容器,最后通过SetBandInfo方法将REBARBANDINFO结构的设置生效。
04. 程序设计
(1)新建基于单文档视图结构的应用程序。
(2)向工程中添加一个位图资源,设置ID属性为IDB_BACK。
(3)在头文件MainFrame.h中声明一个CReBar对象。
private:CReBar m_ReBar;
(4)在主框架的OnCreate函数中创建带背景的工具栏,函数实现代码如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;//创建工具栏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("未能创建工具栏\n");return -1; // 未能创建}//创建状态栏if (!m_wndStatusBar.Create(this)){TRACE0("未能创建状态栏\n");return -1; // 未能创建}m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));//创建工具栏容器m_ReBar.Create(this);//将向导生成的工具栏作为目标工具栏m_ReBar.AddBar(&m_wndToolBar);//重新绘制工具栏容器按钮m_ReBar.RedrawWindow();REBARBANDINFO info;info.cbSize = sizeof(info);//修改容器背景info.fMask = RBBIM_BACKGROUND;//修改工具栏样式m_wndToolBar.ModifyStyle(0, TBSTYLE_TRANSPARENT);//加载图片info.hbmBack = LoadBitmapW(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BACK));//使用REBARBANDINFO信息设置工具栏容器m_ReBar.GetReBarCtrl().SetBandInfo(0, &info);// TODO: 如果不需要可停靠工具栏,则删除这三行 必须注释这几行 否则达不到对应的效果//m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);//EnableDocking(CBRS_ALIGN_ANY);//DockControlBar(&m_wndToolBar);return 0;
}
温馨提示
// TODO: 如果不需要可停靠工具栏,则删除这三行 必须注释这几行 否则达不到对应的效果 //m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); //EnableDocking(CBRS_ALIGN_ANY); //DockControlBar(&m_wndToolBar);
05. 秘笈心法
CReBar 类的使用
MFC中CReBar 类是工具栏类的一个容器,通过CReBar类可以实现对工具栏的控制。不但可以设置工具栏的背景图,还可以设置背景颜色和显示文字。
06. 源码下载
下载:带背景的工具栏代码.rar
07. 附录
【MFC】带背景的工具栏相关推荐
- 【MFC】带图标的工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 默认情况下,MFC中提 ...
- MFC实现256色工具栏图标及工具栏提示信息
MFC中,ToolBar上的button绘制图标,默认只支持16色,如果从Icon资源将超过16色的bmp拷贝到ToolBar的button上会出现颜色失真,网上有使用CImageList实现256色 ...
- QT绘图常用功能 Trick: QT带背景图和文字的QPushButton制作
文章目录 绘图 QPixmap类:绘图 QPixmap::scaled(): 根据给定的尺寸来放大缩小QPixmap QPixmap为QLabel设置背景图片 QLineEdit的样式只能通过QPal ...
- TF之DD:利用Inception模型+GD算法生成带背景的大尺寸、高质量的Deep Dream图片——五个架构设计思维导图
TF之DD:利用Inception模型+GD算法生成带背景的大尺寸.高质量的Deep Dream图片--五个架构设计思维导图 目录 TF中的Deep Dream实践:利用Inception模型+GD算 ...
- TF之DD:利用Inception模型+GD算法生成带背景的大尺寸、高质量的Deep Dream图片
TF之DD:利用Inception模型+GD算法生成带背景的大尺寸.高质量的Deep Dream图片 目录 输出结果 设计思路 代码(部分)实现 输出结果 设计思路 代码(部分)实现 # coding ...
- 【MFC】固定按钮工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 通过MFC向导创建的应 ...
- 【MFC】定制浮动工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 Microsoft V ...
- Android TextView 带背景的文字垂直方向显示(ems属性)
工具:Android Studio 在项目中有个这个需求:要求文字带背景,且文字是垂直方向显示的,竖着排,如图1. 图1 但是当我满怀欣喜地写入了这段代码之后: <TextView andro ...
- 红楼梦词云制作(带背景)
初学望批评指正. 红楼词云带背景图的那种. 原始图像: 原始图像 原始的扣下来的林妹妹 最终用ps合成的图.其实挺唏嘘的,一般人认为黛玉是绝对的女主,但是黛玉只出现了900多次,不及贾母3000次.凤 ...
最新文章
- 如何快速清空 Linux 中的大文件
- RabbitMQ路由模式
- java的多线程实现方式_java 多线程实现方式
- Tkinter的OptionMenu组件
- ELF文件的格式和加载过程
- java js 执行效率_JavaScript提高加载和执行效率的方法
- makefile与stm32工程皮毛了解
- 【Http】一文备忘Http状态码(406,415,422)
- java空心菱形_java 空心菱形
- 树莓派与笔记本用远程桌面连接(Xrdp远程桌面服务)
- 双向lstm-crf源码的问题和细微修改
- 51单片机c语言秒表,51单片机秒表C程序
- PHP 使用GD库合成带二维码的海报步骤以及源码实现
- 使用同花顺获取单只股票的所有历史日线数据
- AcWing - 寒假每日一题2023(DAY 11——DAY 15)
- 一文拿捏:正则表达式
- 会计 制造费用转生产成本
- 计算机名更改后无法进入局域网,win10系统局域网计算机名称更改的恢复办法
- 发货通知单下推其他出库单的时候提示没有符合条件的记录
- 作为从业者,你对进入芯片行业的新人有哪些建议?
热门文章
- 如何让listView加入的HeaderView不可点击【转】
- flash中Stage,stage,root和this的区别用法
- php数组添加数组_PHP数组
- appiumpython框架实例_Appium+python 框架 (二)
- 课程设计---约瑟夫环
- Groovy 1.5.7 出现java.lang.LinkageError问题
- 类方法classmethod 绑定方法
- 圆桌的项目Alpha冲刺——测试
- Mac的文件比对工具:Meld、Beyond Compare
- java中的数据结构总结