CToolBar扩展类CToolBarEx

王学谦nice

王学谦nice

2016-02-19 15:02

今天图老师小编给大家精心推荐个CToolBar扩展类CToolBarEx教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

  我们知道,程序中的工具条是在CMainFrame中生成的,采用的类是CToolBar,使用起来很复杂。为此,对CToolBar的常用功能进行封装,生成了它的一个继承类CToolBarEx,大大简化了操作。编译环境:Windows 2000 Server sp3(en) 、VC++6.0 sp5。 先看使用方法:

  先看使用方法:

  先在CMainFrame中定义变量

  CToolBarEx tbex;

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

  在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)); 

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

  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;//默认图片大小为20X20sizeImage.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;}

本文示例代码或素材下载

展开更多 50%)
分享

猜你喜欢

CToolBar扩展类CToolBarEx

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

一个实用的CToolBar扩展类CToolBarEx

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

s8lol主宰符文怎么配

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

日期函数扩展类Ver0.1.1

Web开发
日期函数扩展类Ver0.1.1

为AS2.0添砖加瓦-编写类扩展(2)

flash教程
为AS2.0添砖加瓦-编写类扩展(2)

lol偷钱流符文搭配推荐

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

为AS2.0添砖加瓦-编写类扩展(4)

flash教程
为AS2.0添砖加瓦-编写类扩展(4)

为AS2.0添砖加瓦-编写类扩展(3)

flash教程
为AS2.0添砖加瓦-编写类扩展(3)

lolAD刺客新符文搭配推荐

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

网页设计或制作中与键盘相关的一些技术

网页设计或制作中与键盘相关的一些技术

如何让工具条显示256色图像

如何让工具条显示256色图像
下拉加载更多内容 ↓