VC动态创建工具栏及工具栏上的按钮及为按钮添加消息响应函数

// OnInitDialog函数中 

//向列表中添加图标

 m_imagelist.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON12));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON13));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
 //m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
// m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
 UINT arry[10];
 for(int i=0;i<5;i++)
 {
  if(i==2)              //第四个按钮为分割条;
   arry[i]=ID_SEPARATOR;
  else
   arry[i]=i+1001;
 }
 m_toolbar.Create(this);
 m_toolbar.SetButtons(arry,5);
 m_toolbar.SetButtonText(0,"增加"); //图片下面添加文字;
 m_toolbar.SetButtonText(1,"修改");
 m_toolbar.SetButtonText(3,"删除");
 m_toolbar.SetButtonText(4,"关闭");
 //m_toolbar.SetButtonText(5,"学生管理");
// m_toolbar.SetButtonText(6,"远程连接");
 m_toolbar.GetToolBarCtrl().SetButtonWidth(20,30);
 m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);
 m_toolbar.SetSizes(CSize(50,50),CSize(32,32));//设置大小;

 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

 

//窗口类h头文件中

//工具栏上的按钮的ID是连续的,如果不连续,一个按钮一个响应,或者修改为连续的,视情况而定
afx_msg void OnBnClickedToolBar(UINT nID);

//消息映射部分
ON_COMMAND_RANGE(ID_BUTTON_1, ID_BUTTON_N, OnBnClickedToolBar)
//工具栏上按钮的消息响应
void CXXXDlg::OnBnClickedToolBar(UINT nID)
{
   
int nIndex = nID - ID_BUTTON_1;
    CString strText(_T(
""));
    strText.Format(_T(
"You select index: %d"), nIndex + 1);
    AfxMessageBox(strText);
}

展开阅读全文

没有更多推荐了,返回首页