MFC界面相关(彩色工具栏)
MFC工具栏控件
创建工具栏步骤:
(1)在Resource View中插入新toolbar
(2)在toolbar上双击增加按钮,更改ID为ID_BUTTON,编译后在resource.h中即可看到
#define ID_BUTTON1 32771
(3)在框架类中添加保护的成员变量 CToolBar m_MyToolBar;
(4)在框架类的OnCreate中用CreateEx创建工具栏控件(设置属性),加载工具栏资源
代码如下:
- if (!m_MyToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT
- | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
- !m_MyToolBar.LoadToolBar(IDR_TOOLBAR1))
- {
- TRACE0("Failed to create toolbar\n");
- return -1; // fail to create
- }
- m_MyToolBar.EnableDocking(CBRS_ALIGN_ANY);
- EnableDocking(CBRS_ALIGN_ANY);
- DockControlBar(&m_MyToolBar);
(5)为工具栏按钮添加消息响应函数,否则按钮为灰色
在框架类Add Window Message Handle, 选择ID_BUTTON,添加消息响应。
具体添加的代码为:1.框架类的声明中afx_msg void OnButton1();
2.框架类的源文件中ON_COMMAND(ID_BUTTON1, OnButton1)
3.框架类的源文件中消息响应函数的实现void CMainFrame::OnButton1() {}
bmp工具栏(开始步骤同上略去)
(1)在Resource View中添加bitmap (在此之前先用画图工具将bitmap调整至合适大小,如48*48),同样编译后可在
resource.h中观察到#define IDB_BITMAP1 132
(2)在框架类中添加成员变量CImageList m_imagelist;
(3)初始化imagelist并将它与CImageList对象联系起来
- m_imagelist.Create(48,48,ILC_COLOR32|ILC_MASK,0,0);
ILC_MASK的作用是将背景色透明。
(4)加载位图资源并且添加进图像列表imagelist(注意要用deleteObject释放之前加载的资源)
- CBitmap bmp;
- for(int i=0;i<3;++i)
- {
- bmp.LoadBitmap(IDB_BITMAP1+i);
- m_imagelist.Add(&bmp,RGB(255,255,255));
- bmp.DeleteObject();
- }
(5)构建一个ToolBar 按钮ID的数组
- UINT nArray[3];
- for(int k=0;k<3;++i)
- {
- nArray[k]=ID_BUTTON1+i;
- }
(6)设置工具栏按钮的ID,按钮与位图的大小
- m_MyToolBar.SetButtons(nArray,3);
- m_MyToolBar.SetSizes(CSize(55,55),CSize(48,48));
- 复制代码
(7)设置图像
- m_MyToolBar.GetToolBarCtrl().SetImageList(&m_imagelist);
效果图如下:
MFC界面相关(彩色工具栏)的更多相关文章
- MFC界面相关源码
这是这4篇MFC界面的相关源码.建议学习Visual C++的看看这2本微软官方出的教材. [MFC Windows程序设计(第2版,修订版)](美)Jeff Prosise著 [Windows程序设 ...
- MFC绘图相关GDI工具对象和函数介绍
在利用MFC进行界面编程时,除了需要熟悉各种类型控件的操作外,还会经常遇到图形绘制和显示的问题,比如时频分析界面.图像处理界面等.处理这些软件界面开发问题时,不可避免地需要用到一系列GDI工具对象和相 ...
- windows核心编程课程实践---多线程文件搜索器(MFC界面)
课上完了连老师见都没见一面QAQ....记录一下该小项目 效果如下: 1.实现文件搜索功能,并封装为类 1)首先是文件搜索类Rapidfinder的构造函数和析构函数和文件信息初始化函数和文件路径规格 ...
- dreamwaver的动态相关文件 工具栏搜索
dreamwaver是很好的编辑工具, 用过很多ide, 对php,js, css代码来说, dw确实是很好很方便的一个工具 php本身设置了很多的 预定义常量, 函数, 可以用来获取当前运行php的 ...
- MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl)
原文:MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl),沙漠紫风铃 本文介绍了MFC中和状态栏相关的用法: 在MFC的的单文档应用中,在建好应用程序之后,CMa ...
- 【Android】7.8 MyDemos项目的结构和主界面相关代码
分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 上一讲已经说过,系统升级为Win10后,重新创建了一个新的项目:MyDemos,并把前7章合并到了这个项目中,这次 ...
- Android界面相关的类
Android界面相关的类 Window Activity的显示界面对象,并作为顶层View被加入到WindowManager中.Window提供了标准的UI显示策略:界面背景.标题区域.默认的事件处 ...
- C++做四则运算的MFC计算器(一)MFC界面创建
学习最有效的方法就是实战,这两篇文章写了做MFC加减乘除计算器的过程. 第一写前台MFC界面搭建,第二写后台计算原理及代码. MFC编程参考教程:http://www.jizhuomi.com/sch ...
- C#开发PACS医学影像处理系统(三):界面布局之工具栏
工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中 Style="{StaticResource ButtonS ...
随机推荐
- Kruscal 、 Prime Template
Kruscal Template : 很裸的Kruscal Template(求最小生成树中最长路,即最短路中最长路) //#pragma comment(linker, "/STACK: ...
- 面向对象程序设计-C++ Steam & Vector 【第三次上课笔记】
大家可以下载后用Vim 或者 Sublime Text等文本编辑器查看 Conference: http://blog.csdn.net/candy1232009/article/details/70 ...
- Krita 3.0 发布,KOffice 的图像处理器(刺激一下自己的神经)
Krita 3.0 发布了,经历了一年多的开发,动画功能被集成到Krita核心,改善了绘画功能,可及时预览绘画结果,该版本也是最新移植到QT的版本. 查看完整发布说明,可以点击这里. 下载地址: Wi ...
- jquery ajax json 数据的遍历
需求:进行ajax请求后,后台传递回来以下json数据 { "data":[ {","name":"选择A","valu ...
- jQuery 遍历ul li 添加 移除
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JSpider是一个用Java实现的WebSpider
JSpider是一个用Java实现的WebSpider,JSpider的执行格式如下: jspider [URL] [ConfigName] URL一定要加上协议名称,如:http://,否则会报错. ...
- 基于visual Studio2013解决C语言竞赛题之0411公约数和公倍数
题目 解决代码及点评 求最大公约数和最小公倍数,方法已经在题目中有提示,分析代码实现如下: /* 题目: 输入两个正整数 m和 n,求其最大公约数和最小公倍数. */ #includ ...
- XML 的实体引用
实体引用 在 XML 中,一些字符拥有特殊的意义. 如果你把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始. 这样会产生 XML 错误: ...
- QVector 和vector的比较(QVector默认使用隐式共享,而且有更多的函数提供)
QVector和vector的比较: Qvector默认使用隐式共享,可以用setSharable改变其隐式共享.使用non-const操作和函数将引起深拷贝.at()比operator[](),快, ...
- SpringMVC日期类型转换问题三大处理方法归纳
方法一:实体类中加日期格式化注解 @DateTimeFormat(pattern = "yyyy-MM-dd") private Date receiveAppTime; 方法二: ...