对于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之 工具栏(二)的更多相关文章

  1. 通过编写串口助手工具学习MFC过程——(二)通过“打开串口”按钮了解基本操作

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  2. 开始学习MFC

    <<对0基础MFC者的一点建议>>---------------------摘自某论坛lint2008的回复,不管对错,先看看.     因为上半年自己刚刚学了点MFC,算是对 ...

  3. 通过编写串口助手工具学习MFC过程——(十)UpdateData()用法和编辑框的赋值、取值

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  4. 通过编写串口助手工具学习MFC过程——(九)自动识别串口的方法

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  5. 通过编写串口助手工具学习MFC过程——(八)遇到的一些问题

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  6. 通过编写串口助手工具学习MFC过程——(四)添加ComboBox组合框

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  7. 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  8. 我的MYSQL学习心得(十二) 触发器

    我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...

  9. css学习归纳总结(二) 转

    原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...

随机推荐

  1. S5P4418 uboot 分析

    瘋耔新浪微博:   http://weibo.com/cpjphone 一: 1◑ 从链接脚本文件u-boot.lds('/opt/4418-source/android/u-boot' )中可以找到 ...

  2. sudo: ./sd_fusing.sh:找不到命令

    1. -----

  3. System.Drawing.Graphics中比较重要的几个方法

    方法 常见参数 绘制的图形 DrawLine 钢笔.起点和终点 一段直线 DrawRectangle 钢笔.位置和大小 空心矩形 DrawEllipse 钢笔.位置和大小 空心椭圆 FillRecta ...

  4. 【POJ】3294 Life Forms

    后缀数组. /* 3294 */ #include <iostream> #include <sstream> #include <string> #include ...

  5. innodb b+树

    http://www.admin10000.com/document/5372.html

  6. poj12月其他题解(未完)

    最近编程的时间比较少啊…… poj3253 就是个合并果子,各种优先队列即可(显然单调队列最优) poj3263 线段树统计每个点被覆盖了多少次即可,注意要去重 poj3625 最小生成树 poj36 ...

  7. Unity3D中使用3DMAX建模规范

    1.将3Dmax中的单位制设置为厘米.  如果使用3DMax来建模的话,可将3DMax的系统默认单位改成厘米 〉Customize - Units Setup - Metric - Display U ...

  8. Vim Vundle 插件管理器

    /********************************************************************** * Vim Vundle 插件管理器 * 说明: * 话 ...

  9. apache开源项目--log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等; ...

  10. STL序列式容器

    1.vector      空间运用的灵活性.      实现技术——关键是对大小的控制以及重新配置时的数据移动效率.      配置新空间.数据移动.释还旧空间      erase(int pos ...