首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一种渐变色带状Bar的绘制

2013-01-05 
一种渐变色条形Bar的绘制源程序:/*文件:ColorBar.h功能:绘制颜色渐变的条形Bar*/enum {GRAY0,RED1,GREEN

一种渐变色条形Bar的绘制

源程序:

/*文件:  ColorBar.h功能:  绘制颜色渐变的条形Bar*/enum {GRAY=0,RED=1,GREEN=2,BLUE=3};class CColorBar  {public:CColorBar();virtual ~CColorBar();void SetColorMode(int mode);void DrawColorBar(CRect &client,CClientDC &dc);private:UINT m_mode;};

实现文件:

/*文件:  ColorBar.cpp功能:  绘制颜色渐变的条形Bar*/CColorBar::CColorBar(){m_mode=GRAY;}CColorBar::~CColorBar(){}void CColorBar::SetColorMode(int mode){m_mode=mode;}void CColorBar::DrawColorBar(CRect &client,CClientDC &dc){CRect m_tab;int N=255;COLORREF rgb;double   dh=(double) client.Height()/N;CBrush *pBrush=NULL;dc.Rectangle(client);for(int i=0;i<N;i++){m_tab.left =client.left;m_tab.right =client.right;m_tab.bottom =client.bottom -i*dh;m_tab.top =m_tab.bottom -dh;switch(m_mode){case GRAY:rgb=RGB(i,i,i);break;case RED:rgb=RGB(i,0,0,);break;case GREEN:rgb=RGB(0,i,0);break;case BLUE:rgb=RGB(0,0,i);break;default:break;}pBrush=new CBrush(rgb);dc.FillRect(m_tab,pBrush);}delete pBrush;pBrush=NULL;}

调用范例:

CColorBar bar;CClientDC dc(this);CRect     m_bar(100,10,150,300);bar.SetColorMode(RED);bar.DrawColorBar(m_bar,dc);



运行效果:

一种渐变色带状Bar的绘制

 
更改颜色选择类型,测试结果如下:

一种渐变色带状Bar的绘制一种渐变色带状Bar的绘制一种渐变色带状Bar的绘制

热点排行