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. CUSPARSE 第三章 CUSPARAE索引和数据格式

    (纯属自学笔记,部分翻译,不会翻译的不翻译) 3.1 索引基本格式 该函数库支持 zero- and one-based 索引. The index base 是通过 cusparseIndexBas ...

  2. HDU ACM 1066 Last non-zero Digit in N!

    #include<iostream> using namespace std; int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; ...

  3. ORACLE列值合併

    合併列值最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其它方法. 在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAg ...

  4. 基于JSP+SERVLET的新闻发布系统(三)

    拖了这么久..今天把栏目管理还有新闻管理模块的也挂出来.. 栏目管理跟用户管理一样. 这里重点讲解新闻管理. 效果图如上: 1,可选择栏目类别,且栏目类别是动态生成的. 默认生成的文章是未审核状态的. ...

  5. B - 队列,推荐

    Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Desc ...

  6. C++变量(C++变量定义、变量赋值、命名规则)

    其实在前面的例子中已经多次用到了变量.在程序运行期间其值可以改变的量称为变量.一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值.请注意区分变量名和变量值这两个不同的概念 ...

  7. ZOJ 3609 求逆元

    Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multiplicative ...

  8. IOS 新消息通知提示-声音、震动

    一.APNS 1.注册 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificati ...

  9. c语言数组初始化问题

    2147483648字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. charstr[10]={'I','','a','m','',‘h’,'a','p','p','y'}; 即把10 ...

  10. JIRA初步

    JIRA 是澳大利亚 Atlassian 公司开发的一款优秀的问题跟踪管理软件工具.可以对各种类型的问题进行跟踪管理.包含缺陷.任务.需求.改进等.JIRA採用J2EE技术.可以跨平台部署.它正被广泛 ...