在窗体中加入3D Bar

王朝vc·作者佚名  2006-01-17
宽屏版  字体: |||超大  

在窗体中加入3D Bar

作者 yxbscsc

下载源代码

经常在VCKBASE上面看到很多别人写的文章,想着自己哪天也在上面写点文章呢!正好前几天由于编程的需要。要做一个有3D边框的static控件,于是在查考别人做的3DBar的基础上,自己做了一个C3DBar类,现在把它奉献给大家。下面是C3DBar的使用方法。

这个类的使用方法很简单,3DBbar中一共有7个public函数。分别为:

void SetBarColour(COLORREF cr);

void DrawHorizontal(CDC* pDC, CRect& BarRect); //画水平bar

void DrawVertical(CDC*pDC,CRect& BarRect); //画垂直bar

void DrawLeft(CDC*pDC,CRect&leftRect); //画左边bar

void DrawRight(CDC*pDC,CRect&rightRect); //画右边bar

void DrawTop(CDC*pDC,CRect&topRect); //画顶边bar

void DrawBottom(CDC*pDC,CRect&bottomRect); //画底边bar

从以上我们也可以看到,其实我们在用的时候一般用的是SetBarColour(COLORREF

cr)、 DrawLeft、DrawRight、DrawTop和DrawBottom这5个函数,用法也很简单。如:我们在一个自定义的Static CDigiStatic中使用。可以分为以下几步:

1、首先把3DBar.h 和3DBar.cpp 加入到你的工程中。

2、在你使用的类中加入头文件,#include "3dbar.h"

3、申明一个C3DBar对象。C3DBar Bar;

4、在类的初始化中调用Bar的函数:SetBarColour;

5、在你使用的类的OnPaint();函数中调用前面介绍的4个函数就可以了。

例如:

void CDigiStatic::OnPaint()

{

CRect dlgrect;

GetClientRect(&dlgrect);

CRect rectleft(0,0,dlgrect.Width()/30,dlgrect.bottom),rectright(dlgrect.right-dlgrect.Width()/30,0,dlgrect.right,dlgrect.bottom),recttop(0,0,dlgrect.right,dlgrect.Width()/30), rectbottom(0,dlgrect.bottom-dlgrect.Width()/30,dlgrect.right,dlgrect.bottom);

CPaintDC dc(this); // device context for painting

Bar.DrawLeft(&dc,rectleft);

Bar.DrawTop(&dc,recttop);

Bar.DrawBottom(&dc,rectbottom);

Bar.DrawRight(&dc,rectright);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有