学习 MFC之 工具栏(二)
对于InitToolBar()函数进行进一步解析:
1、首先声明一个全局对象: CToolBar m_toolbar;
2、然后用create()创建toolbar:
//创建ToolBar工具条
if(!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_TOOLBAR1))
{
TRACE0("Failed to Create Dialog ToolBar\n");
EndDialog(IDCANCEL);
}
注意点一:在创建ToolBar的过程中,设置ToolBar的Style风格,比如 CBRS_TOP 是用来设置ToolBar的位置(为最上),如果更改为CBRS_LEFT 在对话框的最左端。
3、RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rcClientNew);
作用:调用这个函数以在窗口的客户区中重定位控制条并改变其大小。nIDFirst和nIDLast参数定义了要在客户区内重定位的控制条ID的范围。nIDLeftOver参数指定了被用来重定位并改变大小,以填充客户区中没有被控制条覆盖的区域的子窗口(通常是视)的ID。
4、创建CImageList位图
//创建位图 CImageList
HICON hIcon = NULL ;
img.Create(32,32,ILC_COLOR32 | ILC_MASK,3,3);//加载图片大小,图片格式,图片数量
COLORREF co = GetSysColor(COLOR_WINDOW);//获取当前窗口的颜色
img.SetBkColor(co);//图片背景颜色
//将图片动态导入,并加载到列表(imageList)中
hIcon =(HICON) ::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_ADD),IMAGE_ICON,32,32,0);//导入添加学生图片0
img.Add(hIcon);
注意点二:先创建一个放置图标的列表即所谓的CImageList ,然后将图片导入并添加到队列中,其序列号(索引号)是从0开始!
5、将CImageList与Toolbar关联起来
m_toolbar.GetToolBarCtrl().SetImageList(&img);//将CImageList加载到toolbar中
m_toolbar.SetButtons(NULL,6);//设置按钮数(包括分割线)
6、将CImageList通过索引号加载到ToolBar的Button中,来设置Button信息!
m_toolbar.SetButtonInfo(0,IDC_TOOLBAR_ADDSTD,TBSTYLE_BUTTON,0);
m_toolbar.SetButtonText(0,_T("添加学生"));
学习 MFC之 工具栏(二)的更多相关文章
- 通过编写串口助手工具学习MFC过程——(二)通过“打开串口”按钮了解基本操作
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- 开始学习MFC
<<对0基础MFC者的一点建议>>---------------------摘自某论坛lint2008的回复,不管对错,先看看. 因为上半年自己刚刚学了点MFC,算是对 ...
- 通过编写串口助手工具学习MFC过程——(十)UpdateData()用法和编辑框的赋值、取值
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- 通过编写串口助手工具学习MFC过程——(九)自动识别串口的方法
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- 通过编写串口助手工具学习MFC过程——(八)遇到的一些问题
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- 通过编写串口助手工具学习MFC过程——(四)添加ComboBox组合框
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- 我的MYSQL学习心得(十二) 触发器
我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...
- css学习归纳总结(二) 转
原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...
随机推荐
- 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系
2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...
- 如何在一个frame中调用另一个frame中的javascript函数
1.htm <script language="javascript">function test(){alert("测试")}</scrip ...
- UVA 1474 Evacuation Plan
题意:有一条公路,上面有n个施工队,要躲进m个避难所中,每个避难所中至少有一个施工队,躲进避难所的花费为施工队与避难所的坐标差的绝对值,求最小花费及策略. 解法:将施工队和避难所按坐标排序,可以看出有 ...
- Java多线程 -- 深入理解JMM(Java内存模型) --(五)锁
锁的释放-获取建立的happens before 关系 锁是Java并发编程中最重要的同步机制.锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息. 下面是锁释放-获取的示例代 ...
- 设计模式之Memento(备忘机制)
Memento备望录模式定义:memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态. Memento模式相对也比较好理解,我们看下列代码: public ...
- QTP检查点和参数化_百度一下
一.脚本编辑检查点: Browser("百度知道 - 全球最大中文互动问答平台").Page("百度知道 - 全球最大中文互动问答平台").WebEdit(&q ...
- sonar之安装篇
sonar 是一个很好的质量度量平台,安装方式有很多种.下面我教大家使用j2ee 容器的方式安装,我们使用tomcat 1.准备: 1.1 环境redhat linux1.2 下载sonar 从htt ...
- HTTP协议 概述
本文主要说明一些 Http 相关的基本概念和基本知识,主要针对像我一样的初学者,知识主要来自于<Http 权威指南> 除了分享这些基本知识之外,笔者也是为将来找工作复习之用.(协议就是协议 ...
- js onchange事件
因为onchange在属性值改变时还必须使得当前元素失去焦点(onblur)才可以激活该事件. 如果你需要即时监听输入框值的变化,建议使用 onpropertychange 事件! 在IE下,当一个H ...
- English Morphology
最近参与一个小project,需要编写一个针对英文单词的stem 算法. 1. 最为常见的stem 算法 就是The English (Porter2) stemming algorithm http ...