【MFC】带图标的工具栏
00. 目录
文章目录
- 00. 目录
- 01. 案例概述
- 02. 开发环境
- 03. 关键技术
- 04. 程序设计
- 05. 秘笈心法
- 06. 源码下载
- 07. 附录
01. 案例概述
默认情况下,MFC中提供的工具栏只能显示简单的图像。在实际开发过程中如何在工具栏中显示自定义图标呢?本案例实现了一个带有图标的工具栏按钮,效果如下图所示。
02. 开发环境
系统环境:Windows 10
开发环境:Visual Studio 2019
03. 关键技术
工具栏CToolBar提供了一个GetToolBarCtrl方法,用于获得一个CToolBarCtrl对象,该对象提供了一个SetImageList方法用于设置工具栏关联的图像列表控件。只要在程序中创建一个图像列表,并向图像列表中添加图标,将其与工具栏关联,那么工具栏按钮就会显示图像。
04. 程序设计
4.1 新建基于单文档视图结构的应用程序。
4.2 添加图标资源,将图标资源拷贝到项目所在的res目录中,然后找到资源视图,添加图标资源。
4.2 在框架类中定义一个CImageList对象m_Imagelist。
private:CImageList m_ImageList;
4.3 在框架类的OnCreate方法中创建图像列表,并向图像列表中添加图标。创建工具栏,将工具栏与图像列表关联。设置工具栏按钮的大小。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;//创建图像列表,向图像列表中添加图标m_ImageList.Create(32, 32, ILC_COLOR24 | ILC_MASK, 0, 1);//添加一个或多个图象到图象列表中 for (int i = 0; i < 9; i++){m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON1 + i));}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; // 未能创建}//设置工具栏图像列表m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);//设置工具栏按钮大小m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(40, 40));//设置工具栏按钮图像大小m_wndToolBar.GetToolBarCtrl().SetBitmapSize(CSize(30, 30));if (!m_wndStatusBar.Create(this)){TRACE0("未能创建状态栏\n");return -1; // 未能创建}m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));// TODO: 如果不需要可停靠工具栏,则删除这三行//设置工具栏停靠位置m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);//设置框架内对齐方式EnableDocking(CBRS_ALIGN_ANY);//将工具栏进行停靠DockControlBar(&m_wndToolBar);return 0;
}
05. 秘笈心法
工具栏种类
工具栏分为带图标的工具栏、带文字的工具栏和即带图标又带文字的工具栏。带图标的工具栏通过图标的演示作用很容易让人记忆,所以使用起来非常方便,即带图标又带文字的工具栏比只带图标的工具栏更加方便,单图标下方的文字的数量有限,只能是起到提示作用的文本,主要还是依靠图标的演示作用,而且需要结合提示条对工具栏按钮进行提示。
06. 源码下载
6.1 带图标的工具栏示例
下载:带图标的工具栏示例
07. 附录
【MFC】带图标的工具栏相关推荐
- 带图标工具栏的创建以及提示功能的添加
一.带图标工具栏的创建: 第一步:将bmp位图或是ICON图标资源加入到资源视图中:我这里是bmp资源,添加资源时要按照你想要的顺序添加 第二步,在响应的头文件中定义CToolBar对象和CImage ...
- MFC实现256色工具栏图标及工具栏提示信息
MFC中,ToolBar上的button绘制图标,默认只支持16色,如果从Icon资源将超过16色的bmp拷贝到ToolBar的button上会出现颜色失真,网上有使用CImageList实现256色 ...
- 【MFC】带背景的工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 带背景的工具栏可以为程 ...
- Qt添加工具栏(带图标)
Qt添加工具栏(带图标) 一.准备图片 首先找到自己喜欢的图片存放到对应工程的目录下面,这是为了后面添加图标做准备. 二.创建动作 进入工程的UI设计界面: 点击如下的文件夹按钮新建动作: 填写信 ...
- 带图标和按钮切换特效的垂直导航菜单的html页面源码
大家好,今天给大家介绍一款,带图标的垂直导航菜单的html页面源码(图1).送给大家哦,获取方式在本文末尾. 图1 点击每个按钮时,都有切换特效,并显示按钮的说明,看起来非常不错(图2) 图2 代码完 ...
- Android 自带图标库 android.R.drawable
在xml文件中调用. android:title="@string/secure_connect" android:orderInCategory="100" ...
- 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)
我们编写的程序可以发给其他小伙伴使用,但是其他小伙伴不一定安装有python.这时候就需要用到打包啦.打包可以将程序打包成exe文件.然后小伙伴在windows平台里就可以运行(无需python).直 ...
- 【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 ...
最新文章
- 自然语言推理:使用注意力机制
- 递归/回溯:Subsets II求子集(有重复元素)
- linux系统安全优化
- MySQL第8天:MySQL索引优化分析之SQL慢
- 如何分析堆外内存使用情况_堆上与堆外的内存使用情况
- java 解析 csv_在Java中将数据从CSV解析到数组
- Echarts初体验
- 疫情下的远程办公:理解Linux虚拟网络设备之tun/tap
- 数据驱动测试之——CSV+TestNG
- ComBox 绑定数据库
- php+psr4和自动加载,php自动加载规范 PSR4 (Thinkphp)
- 北漂周记--第5记--拼命编程
- 安装MiniTools后,不能识别USB的问题
- SQL SERVER—修改时不允许保存修改
- 使用合取范式进行整数规划建模的方法
- 程序员高手和菜鸟的区别是什么?
- python打字_使用Python编写打字训练小程序
- 深入理解ES8的新特性SharedArrayBuffer
- kibana java_Kibana安装及使用说明
- kalman、particle filter直白理解
热门文章
- assign,copy,strong,weak,nonatomic的理解
- linux whois rpm,CentOS系统安装whois命令的方法
- 三角网导线平差实例_网平差三角网三边导线网.doc
- hadoot配置环境变量win_Windows 下Hadoop的环境变量配置
- python3.7游戏_python3.7+django环境搭建
- android动态获取输入值,Android实现动态自动匹配输入内容
- 【yii2】 yii框架如果控制器和方法都是多个单词组成应该怎样写请求链接
- 小程序导航组件navigator活学活用
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)...
- ldap数据库--ODSEE--复制协议