Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1220475
  • 博文数量: 950
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 13070
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-04 09:23
文章分类

全部博文(950)

文章存档

2011年(1)

2008年(949)

我的朋友

分类: C/C++

2008-08-04 09:30:07

下载本文示例代码
下载源代码

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

} 
下载本文示例代码
阅读(147) | 评论(0) | 转发(0) |
0

上一篇:《COM技术内幕》FAQ

下一篇:模板友元化

给主人留下些什么吧!~~