(, 下载次数: 1)
要点提示
当前我们是通过从CToolBarCtrl派生的类CcustomToolBar实现,当然直接定义CToolBar变量来实现也是可以的,我们这里通过CcustomToolBar类也实现;在MFC绘制工具栏时要处理NM_CUSTOMDRAW通知消息,我们在派生类实现这一消息的映射
实现功能
•1.新建一个对话框应用程序
•2.将CcustomToolBar类的头文件,源文件加入工程,并在对话框类中添加两变量
• CCustomToolBarm_ToolBar;
• CImageListm_ImageList;
•3.在对话框类的OnInitDialog()中实现这两变量的初始化
•m_ImageList.Create(24,24,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_ToolBar.Create(WS_CHILD|TBSTYLE_FLAT|WS_VISIBLE|CBRS_NOALIGN,CRect(0,0,0,0),this,111);
• m_ToolBar.SetImageList(&m_ImageList);
• TBBUTTON buttons[5];
• for(int i = 0; i<5; i++)
• {if(i==2){
• buttons.idCommand= ID_SEPARATOR;
• buttons.fsStyle = TBSTYLE_SEP;
• buttons.fsState = TBSTATE_ENABLED;
• buttons.dwData=NULL;buttons.iString=NULL;}
• else{
• buttons.idCommand= 100+i;
• buttons.iBitmap = i;
• buttons.fsStyle = TBSTYLE_FLAT;
• buttons.fsState = TBSTATE_ENABLED;
• buttons.dwData=NULL;buttons.iString=NULL;
• }
• }
• m_ToolBar.AddButtons(4,buttons);
• TBBUTTONINFObInfo;
• bInfo.cbSize = sizeof(TBBUTTONINFO);
• bInfo.dwMask= TBIF_TEXT;
• bInfo.pszText= "操作员";
• BOOLret = m_ToolBar.SetButtonInfo(100,&bInfo);
• bInfo.pszText= "工程师";
• m_ToolBar.SetButtonInfo(101,&bInfo);
• bInfo.pszText= "退出";
• m_ToolBar.SetButtonInfo(103,&bInfo);
• bInfo.pszText= "工控编程吧";
• m_ToolBar.SetButtonInfo(104,&bInfo);
• m_ToolBar.SetButtonWidth(50,80);
• m_ToolBar.MoveWindow(0,0,100,50);
•我们结合编程软件来演示整个功能实现的过程
[iqiyi]http://player.video.qiyi.com/fbbd7fd48556ce654db84c9c3e480bc3/0/0/w_19rt8cy4ul.swf-albumId=4862439009-tvId=4862439009-isPurchase=0-cnId=12[/iqiyi]