VC++ 动态创建单个工具条,并加载外部的位图(bmp)文件为工具栏图像

步骤:

1, 在框架类CMainFrame头文件里,增加图像变量和工具条变量。

CMFCToolBarImages m_UserImages;

CMFCToolBar m_wndToolBar;

2,在OnCreate函数里动态创建和加载工具条

// 创建工具条
if (!m_wndToolBar .CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1, 1, 1, 1), nID))
{
return false; // 未能创建
}

// 设置工具条按钮大小和图像大小(因为下图中要用的图片是24*24的)
m_wndToolBar.SetSizes(CSize(31,30),CSize(24,24));

// 设置工具条名称
m_wndToolBar.SetWindowText(_T(“测试”));

………

……….

// 设置可停靠位置(这里设置可以任意位置)
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

// 工具条停靠
DockPane(&m_wndToolBar);

………..

// 加载位图图像

m_UserImages.SetImageSize(CSize(24,24),FALSE);// 设置图像大小

if (!m_UserImages.Load(strBmpPath))// 加载位图文件
{
return false;
}

m_wndToolBar.SetUserImages(&m_UserImages.);

// 创建工具条按钮
 m_wndToolBar .InsertButton(CMFCToolBarButton(m_nCurStartId + i , i, NULL, TRUE, 0));

// 在这里CMFCToolBarButton()第四个参数需要设置为true,这样在重绘的时候才会,调用自己设置的图像。

// 设置按钮提示

m_wndToolBar .SetButtonText(nIndex,strTemp);

这样就结束了。

时间: 2024-08-17 21:52:52

VC++ 动态创建单个工具条,并加载外部的位图(bmp)文件为工具栏图像的相关文章

2个方法通过字[符串参数]加载外部js和css文件

Java语言的异常处理机制可以去确保程序的健壮性,提高系统的可用率,但是Java API提供的异常都是比较低级的(这里的低级是指 " 低级别的 " 异常),只有开发人员才能看的懂,才明白发生了什么问题.而对于终端用户来说,这些异常基本上就是天书,与业务无关,是纯计算机语言的描述,那该怎么办?这就需要我们对异常进行封装了. 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了最近神经网络研究的一个热点,本人最近也学习

JavaScript创建Image并实现预加载

读取图像属性: <img src="/"image1.jpg"" name="myImage" /><a href="#" onclick="window.alert(document.myImage.width)">Width</a> 动态加载图像: <script language="JavaScript">   var myImage

iOS 进度条、加载、安装动画 —— HERO博客

iOS 进度条.加载.安装动画简单实现. 首先看一下效果图: 下面贴上代码: 控制器ViewController: #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end /*** ---------------分割线--------------- ***/ #import "ViewController.h" #import "HWWaveView.h" #im

ReportView动态加载带参数的RDCL文件

在vs里新建一个winform程序"ReportViewTest",在form1中添加一个reportView控件,from1的load事件如下: private void Form1_Load(object sender, EventArgs e) { DataSet ds = new DataSet(); try { ds = getDS(); } catch (Exception) { throw; } Microsoft.Reporting.WinForms.ReportDat

缓冲进度条或加载进度条

缓冲进度条或加载进度条,在加载页面或者视频加载过程中,为了做到更好的UI及App功能体验交互,这些缓冲加载的等待效果是必不可少的: 下面来看一下旋转的动画效果:那么,他们的具体源码在这里:loading_1: <?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" andro

使用js加载器动态加载外部Javascript文件

今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js 1 var MiniSite=new Object(); 2 /** 3 * 判断浏览器 4 */ 5 MiniSite.Browser={ 6 ie:/msie/.test(window.navigator.userAgent.toLowerCase()), 7 moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), 8 opera:/o

django之创建第12个项目-加载图片

百度云盘:django之创建第12个项目-加载图片 1.setting配置 #静态文件相关配置 # URL prefix for static files. # Example: "http://example.com/static/", "http://static.example.com/" STATIC_URL = '/static/' import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)

create_module - 生成一条可加载模块记录

总览 #include <linux/module.h> caddr_t create_module(const char *name, size_t size); 描述 create_module试图生成一条可加载模块的记录并保留用来容纳模块的内核空间内存.该系统调用只对超级用户开放. 返回值 成功时返回模块驻留的内核空间地址,错误时返回-1,errno被相应设置. 错误 EPERM     用户非超级用户. EEXIST     相同名字的模块已经存在. EINVAL     要求的大小即

【Win 10 应用开发】加载外部的 srt 字幕

据说系统内置的多媒体功能支持 srt. ass 等字幕,老周测试过几种格式的字幕均能加载. SRT 字幕是最简单的字幕结构,甚至你用记事本都能做出来,就是分为几行来写. 第一行是字幕的编号,应该是从1开始的,反正工具生成的SRT都是从1开始编号: 第二行是字幕的开始时间和结束时间,中间用一个 “-->”来分隔: 第三行是字幕内容. 比如这样: 18 00:03:37,933 --> 00:03:45,366 時而憑風遨遊,時而髙談怪論 19 00:03:45,366 --> 00:03: