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);

  效果图如下:

更多0

MFC界面相关(彩色工具栏)的更多相关文章

  1. MFC界面相关源码

    这是这4篇MFC界面的相关源码.建议学习Visual C++的看看这2本微软官方出的教材. [MFC Windows程序设计(第2版,修订版)](美)Jeff Prosise著 [Windows程序设 ...

  2. MFC绘图相关GDI工具对象和函数介绍

    在利用MFC进行界面编程时,除了需要熟悉各种类型控件的操作外,还会经常遇到图形绘制和显示的问题,比如时频分析界面.图像处理界面等.处理这些软件界面开发问题时,不可避免地需要用到一系列GDI工具对象和相 ...

  3. windows核心编程课程实践---多线程文件搜索器(MFC界面)

    课上完了连老师见都没见一面QAQ....记录一下该小项目 效果如下: 1.实现文件搜索功能,并封装为类 1)首先是文件搜索类Rapidfinder的构造函数和析构函数和文件信息初始化函数和文件路径规格 ...

  4. dreamwaver的动态相关文件 工具栏搜索

    dreamwaver是很好的编辑工具, 用过很多ide, 对php,js, css代码来说, dw确实是很好很方便的一个工具 php本身设置了很多的 预定义常量, 函数, 可以用来获取当前运行php的 ...

  5. MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl)

    原文:MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl),沙漠紫风铃 本文介绍了MFC中和状态栏相关的用法: 在MFC的的单文档应用中,在建好应用程序之后,CMa ...

  6. 【Android】7.8 MyDemos项目的结构和主界面相关代码

    分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 上一讲已经说过,系统升级为Win10后,重新创建了一个新的项目:MyDemos,并把前7章合并到了这个项目中,这次 ...

  7. Android界面相关的类

    Android界面相关的类 Window Activity的显示界面对象,并作为顶层View被加入到WindowManager中.Window提供了标准的UI显示策略:界面背景.标题区域.默认的事件处 ...

  8. C++做四则运算的MFC计算器(一)MFC界面创建

    学习最有效的方法就是实战,这两篇文章写了做MFC加减乘除计算器的过程. 第一写前台MFC界面搭建,第二写后台计算原理及代码. MFC编程参考教程:http://www.jizhuomi.com/sch ...

  9. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

随机推荐

  1. Qt对话框_模态/非模态

    对话框在Qt GUI应用程序中有着广泛的用途,对话框有模态.非模态两种情况. 对于参数选择的对话框,一般用模态对话框:对于显示或查看某些内容的对话框,一般用非模态对话框. 对话框类QDialog,官方 ...

  2. UIScrollView方法 属性详解

    --前言:UIScrollView使用非常广,本文研究UIScrollView各属性和方法,明白它们的意义.作用.在后面的一篇文章有整理UIScrollView一些常见用法以及一些效果的实现思路. - ...

  3. OGR SQL (GEOM)

    The OGRDataSource supports executing commands against a datasource via the OGRDataSource::ExecuteSQL ...

  4. Mac中使用svn进行项目管理

    Mac中使用svn进行项目管理,借鉴了http://blog.csdn.net/q199109106q/article/details/8655204 下面方案多人亲測可用 转载请注明出处:http: ...

  5. 旧版本mysql下载大全,爽~~

    http://mirror.cogentco.com/pub/mysql/MySQL-4.1/ http://mirror.cogentco.com/pub/mysql/MySQL-5.0/ http ...

  6. Home键的获取监听,安卓4.0后就不能在onkeydown方法中获取了。怎么办。

    Android下得到Home键按下的消息   在Android下,并不能通过onKeyDown这样的事件来截获Home键的消息,其原因在Android的文档中已经明确的说过了 public stati ...

  7. mysql禁用autocommit,以及遇到的问题(转)

    MySQL的autocommit(自动提交)默认是开启,其对mysql的性能有一定影响,举个例子来说,如果你插入了1000条数据,mysql会commit1000次的,如果我们把autocommit关 ...

  8. 异常configure: *** apu library not found.

    安装modsecurity时,出现"configure: *** apu library not found.".      解决方法: yum install apr-util- ...

  9. Java的位运算符具体解释实例——与(&amp;)、非(~)、或(|)、异或(^)

    位运算符主要针对二进制,它包含了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.以下 ...

  10. Android_Service组件详解

    1.Service概述 Service服务是一个没有用户界面的在后台运行执行操作的应用组件,其它组件可以通过Intent意图启动这个Service去完成特定的功能,比如通过Service可以完成播放音 ...