现在把我最新研究的对CMFCToolBar心得写在这边。

现在介绍两种加载工具栏的方式:

一种是静态加载工具栏,跟普通的加载工具栏一样,只是用了自定义图片。

一种是动态加载工具栏,这个也是需要静态工具的帮忙,这个的话原因还没有研究,但可以达到动态的效果。

还有特别需要介绍的是增加透明工具栏图片的方法。不知道一篇文章写这么多好不好。就算是分享学习了。

1、增加透明工具栏按钮图片。

1)获取一张需要插入工具栏的位图bmp;

2)用Adobe Photoshop CS3进行打开(就是图像处理工具,一般都可以)。

3)点击箭头,然后全选图片。

4)全选图片,进行拷贝。

5)双击右下角通道。

6)点击新建通道

7)黏贴刚刚复制的图片

8)区域选择,用魔棒把图标的外围选中,并填充外围颜色为黑色。

9)点击菜单中选择,点击反向,然后剪切。

10)另存图片。透明图标就做好了。

11)演示图标

这样就不会出现白色底了,透明图标。这图片大小会比普通图片大,因为加了通道。

2)CMFCToolBar 加载静态工具栏

1)、设置工具栏按钮数和按钮大小,以上图片是32像素,即宽度和高度设置成32*32

2)、声明成员变量

CMFCToolBar m_toolBar;

3)、加载代码

 //加载真彩图片工具栏 方式1.m_toolBar.CreateEx(this, TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC);m_toolBar.LoadToolBar(IDR_MY_TOOLBAR, 0, 0, TRUE, 0, 0, IDB_TOOL_FIRST_BMP);m_toolBar.SetRouteCommandsViaFrame(FALSE);//设置消息以对话框方式传递//根据对话框大小调整工具栏 包含无菜单位置CRect rect;GetClientRect(rect);if (m_toolBar.GetSafeHwnd() != NULL){int cyTlb = m_toolBar.CalcFixedLayout(FALSE, TRUE).cy;m_toolBar.SetWindowPos(NULL, rect.left, rect.top+2, rect.Width(), cyTlb, SWP_NOACTIVATE | SWP_NOZORDER);}//m_toolBar.AdjustSizeImmediate();//根据按钮大小调整工具栏

4)、成果如上图所示。

2、CMFCToolBar 动态工具栏

这个设置可变按钮个数工具栏

也要用到静态设置的工具栏长度大小。

1)、设置工具栏按钮大小和工具栏按钮个数,按钮个数为最大工具栏按钮个数。每个按钮id为自定义,因为这个工具资源可重复利用

动态设置按钮的ID跟这静态设置按钮的ID无关,后面会根据动态ID进行消息发放。可以设置一个按钮,用于管理工具栏资源。

3)、声明成员变量

CMFCToolBar m_toolBar;

4)、加载代码

m_toolBar.CreateEx(this, TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC);m_toolBar.AddToolBarForImageCollection(IDR_EXT_MY_TOOLBAR, IDB_EXIT_BMP);m_toolBar.SetSizes(CSize(32,32), CSize(32,32));//设置按钮大小m_mfcToolbarImage.SetImageSize(CSize(32, 32), TRUE);CBitmap bmp;bmp.LoadBitmap(IDB_EXIT_BMP);m_mfcToolbarImage.AddImage(bmp);bmp.DeleteObject();bmp.LoadBitmap(IDB_EDIT_ADD_BMP);m_mfcToolbarImage.AddImage(bmp);int aa = m_toolBar.SetUserImages(&m_mfcToolbarImage);//m_toolBar.imagem_toolBar.InsertButton(CMFCToolBarButton(ID_FILE_NEW , 0,  "这是提示?", TRUE, 0));// 在这里CMFCToolBarButton()第四个参数需要设置为true,这样在重绘的时候才会,调用自己设置的图像。  m_toolBar.InsertButton(CMFCToolBarButton(ID_FILE_OPEN , 1,  "这是提示1?", TRUE, 0));m_toolBar.AdjustSizeImmediate();//根据按钮大小调整工具栏

5)效果图

大概写完了,以后会更新的。

MFC CMFCToolBar静态工具栏和动态工具栏,加载自定义图片(真彩透明)相关推荐

  1. zTree异步加载(自定义图片)

    zTree官网:点击打开链接 一:文件下载 点击首页右下角的ztree download,选择Guihub下载 点击Clone or download下载 二:相关包介绍 jquery.ztree.c ...

  2. pl.droidsonroids.gif.GifImageView 动态加载gif图片不动的问题

    今天由于需求的原因,需要GifImageView 去动态代码加载gif图片,结果平时在XMl里面正常加载的gif图片,动态加载却一动不动,原谅作为渣渣的我平时不怎么去研究gif,查了许久才发现 ,需要 ...

  3. c 语言解析png图片文件信息,使用CImage加载PNG图片文件

    在MFC开发中,大家很容易用到PNG等流行媒体格式.但是MFC只提供了简单的BMP,ICON等文件的加载.此时,使用CImage将使得图片加载轻松自如. CImage加载导入图片 首先加载动态图片进入 ...

  4. Python图片转gif(将静态图转化为分块加载的动态图)

    简介 将静态图转化为分块加载的动态图 方案 1. PIL: 1. 创建背景图2. 将原图拆分成N块并依次合成到背景图的相应位置, 得到N张素材图3. 将N张素材图合成GIF2. pygifsicle对 ...

  5. gridpanel动态重新加载columnModel与store

    gridpanel动态重新加载columnModel与store 其实很简单的,主要就是以下三项. //重新绑定grid this.grid.reconfigure(newStore, new Ext ...

  6. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  7. ELF动态库加载技术

    库用于将相似函数打包在一个单元中.Linux支持两种类型的库:静态库(在编译时静态绑定到程序)和动态库(在运行时绑定到程序).Linux系统使用的动态库是ELF格式,后缀名为so. 1 加载 动态库内 ...

  8. ajax动态加载div,JQuery/AJAX:使用动态内容加载外部DIV使用动态内容

    我需要创建一个页面,使用Jquery和AJAX从外部页面加载div.JQuery/AJAX:使用动态内容加载外部DIV使用动态内容 我遇到了一些很好的教程,但它们都是基于静态内容的,我的链接和内容是由 ...

  9. postgresql源码学习(57)—— pg中的四种动态库加载方法

    一. 基础知识 1. 什么是库 库其实就是一些通用代码,可以在程序中重复使用,比如一些数学函数,可以不需要自己编写,直接调用相关函数即可实现,避免重复造轮子. 在linux中,支持两种类型的库: 1. ...

最新文章

  1. 一文读懂基于神经网络的图片风格转移
  2. JavaFX 的 UI 控件集 ControlsFX
  3. vbs运算符号和函数
  4. python 调用 tensorflow.dll_python tensorflow导入DLL加载失败
  5. 用户登录界面(Bootstrap)入门教程01(适合初学者)
  6. Ubuntu 图形桌面死机重启(机器不重启)
  7. Spark控制消费速率
  8. maven profile参数动态打入
  9. ××× L2TP over IPSec 配置
  10. 在ubuntu20.04下解决:E: 无法定位软件包 mingw32 的问题
  11. 人工智能产品经理如何面对数据挖掘
  12. 如何制作一个餐厅下单和外卖二维码?
  13. 如何搭建ftp服务器实现文件共享
  14. 币圈进化,IFO、IHO玩法更高级,李笑来Candy“糖果”野望未来
  15. Alpha 冲刺(3/10)
  16. 中型仓储货架是使用三立柱货架好,还是使用两立柱货架好?
  17. Flink实践 | 360 政企安全基于 Flink 的 PB 级数据即席查询实践
  18. GCP/临床试验基础知识集锦
  19. 页面底部copyright部分制作过程中遇到的问题,解决以及总结
  20. 计算机统考木桶效应ppt,木桶效应 课件..ppt

热门文章

  1. 基础护理学类毕业论文文献都有哪些?
  2. 花三个月吃透京东T8推荐的178页京东基础架构建设之路,入职定T5
  3. Python3,7行代码自动完成手淘喵糖任务,再也不用点点点了。
  4. 来电归属地java_来电归属地数据查询Java实现
  5. 懒人必备 自动识别语音给视频添加字幕
  6. 基于FPGA的数码管显示出租车计费器
  7. 公网SSH远程Ubuntu:安装cpolar内网穿透映射22端口 2/3
  8. rewrite地址转换
  9. Unity 3D WebView 插件之WebViewPrefab API解析(四)
  10. Python -- 网络编程