第一,创建一个基于对话框的工程

第二,在主窗口头文件中声明一个CToolBarCtrl 类对象和两个图像列表对象。

CImageList m_Images;
 CImageList m_HotImages;
 CToolBarCtrl m_ToolBar;

第三,在工作区的资源视图窗口中导入图标资源。

第三,在对话框的OnInitDialog方法中加载图标,关联图像列表,创建工具栏。

BOOL CGraphicToolbarDlg::OnInitDialog() CDialog::OnInitDialog();

// Add "About..." menu item to systemmenu.

// IDM_ABOUTBOX must be in the system commandrange.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) ==IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if(!strAboutMenu.IsEmpty())   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX, strAboutMenu); }

// Set the icon for thisdialog.  The framework does thisautomatically
 //  when the application's mainwindow is not a dialog

SetIcon(m_hIcon,TRUE);   // Setbig icon
 SetIcon(m_hIcon,FALSE);  // Set small icon //创建图像列表
 m_Images.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
 m_HotImages.Create(32,32,ILC_COLOR24|ILC_MASK,1,1); m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
 m_Images.Add(AfxGetApp()->LoadIcon(IDI_ICON8));

m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON11));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON12));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON13));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON14));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON15));
 m_HotImages.Add(AfxGetApp()->LoadIcon(IDI_ICON16));

//创建工具栏
 m_Toolbar.Create(WS_CHILD|WS_VISIBLE,CRect(20,20,100,60),this,12345);
 TBBUTTON    btns[9];
 TBBUTTONINFO btnInfo[9]; for (int i = 0;i<8;i++)  memset(&btns[i],0,sizeof(TBBUTTON));
  if (i==3 || i==7)
   btns[i].fsStyle= TBSTYLE_SEP ; //第4、8个按钮为分隔条
  else

btns[i].idCommand=1001+i;
  btns[i].iBitmap = i;
  btns[i].fsState =TBSTATE_ENABLED ;
 }

//添加工具栏按钮
 m_Toolbar.AddButtons(9,btns);

for (i = 0; i<9; i++)  btnInfo[i].cbSize = sizeof(TBBUTTONINFO);
  btnInfo[i].dwMask = TBIF_TEXT;

char buffer[20] ;
  memset(buffer,0,20);

itoa(i,buffer,10);
  strcat( buffer,"按钮");
  btnInfo[i].pszText =buffer;
  m_Toolbar.SetButtonInfo(1001+i,&btnInfo[i]);
 }

//设置工具栏关联的图像列表控件
 m_Toolbar.SetImageList(&m_Images);
 m_Toolbar.SetHotImageList(&m_HotImages); m_Toolbar.SetButtonWidth(50,60); m_Toolbar.SetBitmapSize(CSize(40,30)); m_Toolbar.SetStyle(TBSTYLE_FLAT|CCS_TOP); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); return TRUE;

VC++ 使用导入位图创建工具栏相关推荐

  1. 使用Win API创建工具栏

    作者:朱金灿 来源:http://blog.csdn.net/clever101 到网上查了下资料,初步实现了使用WinAPI创建工具栏. 下面是创建一个标准工具栏的函数,(这里所谓标准工具栏是指工具 ...

  2. vc实现透明位图,透明背景

    vc实现透明位图,透明背景 我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本文介绍了透明位图的制作知识,并 ...

  3. 鸡啄米vc++2010系列35(工具栏资源及CToolBar类)

    工具栏简介 工具栏一般位于主框架窗口的上部,菜单栏的下方,由一些带图片的按钮组成.当用户用鼠标单击工具栏上某个按钮时,程序会执行相应的操作,如果鼠标没有点击,只是停留在某个按钮上一会后,会弹出一个小窗 ...

  4. 【MFC】对话框中创建工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 使用MFC向导可以创建 ...

  5. MFC用代码创建工具栏

    VC2012:单文档工程: 在主框架类头文件,原来的工具条变量之后,增加一个m_mywndToolBar变量: 在主框架类CPP文件,原来的创建工具栏函数后面,增加一个创建函数: 添加一个自己工具栏按 ...

  6. 文本编辑器创建工具栏

    文章目录 1 文本编辑器创建工具栏 1 文本编辑器创建工具栏 在MainWindow.h中增加如下函数声明: bool initToolBar(); bool initFileToolItem(QTo ...

  7. 【MFC】根据菜单创建工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 通常工具栏能够实现的功 ...

  8. oracle11 删除表空间,oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等...

    oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等 1. [启动停止服务] //启动停止监听  www.2cto.com lsnrctl start; lsnrc ...

  9. 教你在CorelDRAW中导入位图

    在CorelDRAW软件中不能直接打开位图图像,在实际操作中,用户需要使用导入位图图像的方法进行操作.导入位图图像时,可以导入整幅图像,也可以在导入的过程中对图像进行裁剪,或重新取样图像,导入整幅位图 ...

最新文章

  1. AAAI 2021全部大奖出炉!华人霸屏!北航、华科校友获最佳论文,华南理工获杰出论文
  2. leetcode102 二叉树的层次遍历
  3. 赛门铁克:“高度怀疑”WannaCry的幕后黑手是朝鲜
  4. Mac 技术篇-应用程序被锁定无法进行卸载问题解决方法,文件、文件夹被锁定无法移入废纸篓处理方法,卡巴斯基被锁定如何进行卸载演示
  5. php视图,thinkPHP框架中视图的讲解(附代码)
  6. 软件测试知识产权保护,一种软件测试方法及软件测试系统专利_专利申请于2017-09-07_专利查询 - 天眼查...
  7. 关于spring mvc时间类型绑定失败解决方法
  8. 真传x深度学习第一课:环境配置搭建
  9. DeepMind给人工智能搞了一套IQ测试题
  10. Linux 搭建NTP服务器
  11. 【XenApp 6.5体验】SmartAuditor 1.3 Policy Console策略控制台打开报401错误的解决办法...
  12. Nagios 监控twemproxy
  13. php 查询access数据库操作,php操作access数据库的方法详解
  14. 数据分享 — 国内外常用夜间灯光数据产品介绍
  15. Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
  16. 计算机组成原理实验心得2000字,计算机组成原理实验一:基础汇编语言程序设计实验...
  17. RSS阅读器FeedDemon使用方法
  18. windows系统cab补丁安装方法
  19. 移动光猫怎么设置虚拟服务器设置,移动光纤怎么设置无线路由器?
  20. 推荐几个全网最全的程序员接私活地方法或完整攻略或常用平台以及接单的注意事项(以免被雇主坑),比如国内的程序员客栈、CODING 码市,国外的Upwork、Freelancer、Dribbble等。

热门文章

  1. 从上往下 流式布局_揭秘做好网站结构优化的4步(下)
  2. 为什么手机上传图片这么慢 前端_怎样在手机上就能把图片压缩到100K以下?
  3. 外键查询_传统关系型数据库查询性能提高思路
  4. 描述符:property 迭代器
  5. Caffe的Solver参数设置
  6. mybatis mapper.xml --注释 带参数的坑
  7. [Google Guava] 排序: Guava强大的”流畅风格比较器”
  8. java中的工厂模式
  9. mysql学习【第14篇】:pymysql
  10. 企业关系网络分析,大数据时代淘金利器