在对话框上加工具条(vs2005)

1、添加变量:CToolBar m_wndToolBar;

2、生成工具条

BOOL CfDemoDlg::OnInitDialog()
{

      if (!m_wndToolBar.CreateEx( this,TBSTYLE_LIST ,  WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | 

             CBRS_TOOLTIPS  ,CRect(4,4,0,0)) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR2) )

     {
             return FALSE;
     }

    m_wndToolBar.ShowWindow(SW_SHOW);
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

 

   m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,1,1);
 
   for(int i=0;i<9;i++)
   {
     m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1+i));
   }
   m_wndToolBar.SetButtonText(0,_T("添加")); 
   m_wndToolBar.SetButtonText(1,_T("批量")); 
   m_wndToolBar.SetButtonText(2,_T("删除")); 
   m_wndToolBar.SetButtonText(3,_T("清空")); 
   m_wndToolBar.SetButtonText(4,_T("上移")); 
   m_wndToolBar.SetButtonText(5,_T("下移")); 
   m_wndToolBar.SetButtonText(6,_T("开始")); 
   m_wndToolBar.SetButtonText(7,_T("主页")); 
   m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
   m_wndToolBar.GetToolBarCtrl().SetButtonWidth(30,50); 
   m_wndToolBar.SetSizes(CSize(70,35),CSize(32,28));//设置大小;

} 

3、消息响应

在vs2005中,似乎不能像vc6那样响应自定义工具条的消息,所以自己响应了一下:

void OnBnClickedToolBar1(UINT nID);//添加函数

ON_COMMAND_RANGE(ID_ADD_FILE, ID_HOME, OnBnClickedToolBar)//添加工具条消息映射

void CImageToPdfDemoDlg::OnBnClickedToolBar1(UINT nID)//函数实现
{
 int nIndex = nID - ID_ADD_FILE;

 switch(nIndex)
 {
  case 0:
   OnAddFile();
   break;
  case 1:
   OnAddFolder();
   break;
  case 2:
   OnListDelete();
   break;
  case 3:
   OnListClear();
   break;
  case 4:
   OnUp();
   break;
  case 5:
   OnDown();
   break;
  case 6:
   OnConvert();
   break;
  case 7:
   OnHome();
   break;
  default:;

}

}
posted @ 2011-04-22 09:11  古老的陶罐  阅读(262)  评论(0编辑  收藏  举报