MFC里如何创建工具栏

来源:互联网 发布:jquery.fly.js用法 编辑:程序博客网 时间:2024/06/09 20:38

开发环境VC6.0
工具栏需要自己完全编写代码添加,不需要画界面
在StdAfx.h里定义 
#define ICONSUM  5
在编写的主框体类C***Dlg里添加如下变量:
private:
 CImageList       m_ImageList;
 CToolBarCtrl    m_ToolBar;
在C***Dlg类的OnInitDialog()函数中添加如下代码

//创建工具栏

 TBBUTTON tbButton[ICONSUM] = {0};                 //工具栏按钮数组

 m_ImageList.Create(32, 32, ILC_COLOR32 | ILC_MASK, 0, 0);             //创建工具栏用的图像列表
 m_ImageList.Add(::AfxGetApp()->LoadIcon(IDI_ICON5));              //加载相应的图标

 m_ImageList.Add(::AfxGetApp()->LoadIcon(IDI_ICON3));
 m_ImageList.Add(::AfxGetApp()->LoadIcon(IDI_ICON1));
 m_ImageList.Add(::AfxGetApp()->LoadIcon(IDI_ICON2));
 m_ImageList.Add(::AfxGetApp()->LoadIcon(IDI_ICON4));
 m_ToolBar.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, 0);           //创建工具栏
 m_ToolBar.SetImageList(&m_ImageList);                  //为工具栏附加图标列表
 for(int i=0; i< ICONSUM; i++)
 {
  tbButton[i].dwData  = NULL;
  tbButton[i].fsState  = TBSTATE_ENABLED;                //按钮状态
  tbButton[i].fsStyle  = (BYTE)TBSTYLE_FLAT;            //按钮风格
  tbButton[i].iBitmap  = i;            //设置图标
  
 }
 tbButton[0].idCommand = ID_ATTENDANCE_RECORD;           //为每个按钮指定一个命令ID
 tbButton[1].idCommand = IDM_REQUEST_EMPLOYEE;
 tbButton[2].idCommand = IDM_PAYLIP;
 tbButton[3].idCommand = IDM_PORTFOLIO;
 tbButton[4].idCommand = ID_ABOUT;
 m_ToolBar.AddButtons(ICONSUM, tbButton);             //为工具栏添加按钮
 m_ToolBar.AutoSize();             //自动调整工具栏大小
 m_ToolBar.SetStyle(TBSTYLE_FLAT | CCS_TOP);       //设置工具栏风格




首先创建一个基于对话框的程序。

      然后在工作区导入图标文件,再在类中定义my_toolbar,my_imagelist对象。

      在OninitDialog函数中创建工具栏和图像列表对象,然后关联他们。

     代码如下:

 //向列表中添加图标

 m_imagelist.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
 UINT arry[10];
 for(int i=0;i<6;i++)
 {
  if(i==3)              //第四个按钮为分割条;
   arry[i]=ID_SEPARATOR;
  else
   arry[i]=i+1001;
 }
 m_toolbar.Create(this);
 m_toolbar.SetButtons(arry,7);
 m_toolbar.SetButtonText(0,"登录系统"); //图片下面添加文字;
 m_toolbar.SetButtonText(1,"文件管理");
 m_toolbar.SetButtonText(2,"计算统计");
 m_toolbar.SetButtonText(4,"联系方式");
 m_toolbar.SetButtonText(5,"学生管理");
 m_toolbar.SetButtonText(6,"远程连接");
 m_toolbar.GetToolBarCtrl().SetButtonWidth(50,70);
 m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);
 m_toolbar.SetSizes(CSize(70,50),CSize(32,32));//设置大小;

 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

参考文献:

http://www.cnblogs.com/kzloser/archive/2012/11/26/2787341.html

http://www.cnblogs.com/afarmer/archive/2011/05/07/2039534.html

0 0
原创粉丝点击