一个实用的CToolBar扩展类CToolBarEx

___七宗罪丶

___七宗罪丶

2016-01-29 12:05

一个实用的CToolBar扩展类CToolBarEx,一个实用的CToolBar扩展类CToolBarEx

一个实用的 CToolBar 扩展类 CToolBarEx

作者:xiaojin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载源代码

  我们知道,程序中的工具条是在CMainFrame中生成的,采用的类是CToolBar,使用起来很复杂。为此,对CToolBar的常用功能进行封装,生成了它的一个继承类CToolBarEx,大大简化了操作。本文参考了 VCKBASE 以前发表的关于工具条的文章,在此先表示感谢!

编译环境:Windows 2000 Server sp3(en) 、VC++6.0 sp5。

先看使用方法:先在CMainFrame中定义变量

CToolBarEx  tbex;
在CMainFrame的OnCreate()函数中加入如下代码:
//先创建ToolBar,取代原来的代码tbex.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP       | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);//设置按钮个数,分割条也要算一个哦tbex.SetButtonNumber(5);//加入图片tbex.AddIcon(AfxGetApp()-LoadIcon(IDR_MAINFRAME));  tbex.AddIcon(AfxGetApp()-LoadIcon(IDR_TBTYPE));  tbex.AddIcon(AfxGetApp()-LoadIcon(IDI_SWIRE)); tbex.AddIcon(AfxGetApp()-LoadIcon(IDI_ICON1)); //设置每个按钮的位置、ID、图片索引和文字tbex.SetButton(0,ID_APP_ABOUT,0,"员工");tbex.SetButton(1,ID_APP_EXIT,1,"进料");//加入分割条tbex.AddSeparator (2);tbex.SetButton(3,ID_APP_ABOUT,2,"Swire");tbex.SetButton(4,ID_APP_ABOUT,3,"Coca");//设置每个按钮大小tbex.SetSize();   //或者tbex.SetDefaultSize()
这样,一个漂亮的ToolBar就显现在我们面前,是不是很简单啊。

◆类定义

class CToolBarEx : public CToolBar{public:       CToolBarEx();public://设置图片大小  void SetImageSize(int nImageWidth,int nImageHeight); //加入图片       void AddBitmap(CBitmap* pbmImage, COLORREF crMask);       void AddBitmap(CBitmap* pbmImage, CBitmap* pbmMask);void AddIcon(HICON hIcon);//设置按钮大小为默认大小       void SetDefaultSize();//加入分割条       void AddSeparator(int nButton);       //设置按钮大小,默认是50X40,具体设定必须符合ToolBar的要求,可以自己调       void SetSize(int nWidth=50,int nHeight=40);//设置按钮图片和文字       void SetButton(int nButton,int nID, int nImage,LPTSTR lpText);//设置按钮图片无文字       void SetButton(int nButton,int nID, int nImage);//设置按钮个数       void SetButtonNumber(int n);//加入图片到ToolBarEx,在AddIcon()和AddBitmap()中自动调用       void SetImage();//图片变量       CImageList img;//图片大小变量       CSize sizeImage;       virtual ~CToolBarEx();protected:       DECLARE_MESSAGE_MAP()};
◆类具体实现:
CToolBarEx::CToolBarEx(){       sizeImage.cx =20;//默认图片大小为20X20       sizeImage.cy =20;       img.Create(sizeImage.cx-1, sizeImage.cy-1, ILC_COLOR8|ILC_MASK, 1,1);}CToolBarEx::~CToolBarEx(){}void CToolBarEx::SetImage(){       this-GetToolBarCtrl().SetImageList (&img);}void CToolBarEx::SetButtonNumber(int n){          SetButtons(NULL,n);}void CToolBarEx::SetButton(int nButton, int nID, int nImage,LPTSTR lpText){    SetButtonInfo(nButton, nID, TBSTYLE_BUTTON, nImage);       SetButtonText(nButton, lpText);   }void CToolBarEx::SetButton(int nButton, int nID, int nImage){    SetButtonInfo(nButton, nID, TBSTYLE_BUTTON, nImage);}void CToolBarEx::SetSize(int nWidth,int nHeight){   CSize cs;       cs.cx =nWidth;       cs.cy =nHeight;       SetSizes(cs, sizeImage);}void CToolBarEx::AddIcon(HICON hIcon){     img.Add (hIcon);       SetImage();}void CToolBarEx::AddSeparator(int nButton){     SetButtonInfo(nButton, 0, TBBS_SEPARATOR, 0);}void CToolBarEx::SetDefaultSize(){       CRect rectToolBar;       GetItemRect(0, &rectToolBar); //得到按钮的大小       SetSizes(rectToolBar.Size (), sizeImage); //设置按钮的大小}void CToolBarEx::AddBitmap(CBitmap *pbmImage, CBitmap *pbmMask){       img.Add( pbmImage, pbmMask);SetImage();}void CToolBarEx::AddBitmap(CBitmap *pbmImage, COLORREF crMask){       img.Add( pbmImage, crMask);SetImage();}void CToolBarEx::SetImageSize(int nImageWidth,int nImageHeight){   sizeImage.cx = nImageWidth;   sizeImage.cy =nImageHeight;}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)
展开更多 50%)
分享

猜你喜欢

一个实用的CToolBar扩展类CToolBarEx

C语言教程 C语言函数
一个实用的CToolBar扩展类CToolBarEx

CToolBar扩展类CToolBarEx

编程语言 网络编程
CToolBar扩展类CToolBarEx

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个非常实用的Javascript类库

Web开发
一个非常实用的Javascript类库

一个比较实用的asp函数集合类

ASP
一个比较实用的asp函数集合类

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个比较实用的asp函数集合类(1)

ASP
一个比较实用的asp函数集合类(1)

一个比较实用的asp函数集合类(2)

ASP
一个比较实用的asp函数集合类(2)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

可设置单元格颜色的ClistCtrl类

可设置单元格颜色的ClistCtrl类

css新手上路(4)

css新手上路(4)
下拉加载更多内容 ↓