现已经实现椭圆按钮,我派生了一个基于CBUTTON的类,并重写了函数如下:
void CMyBtn::GradientFill (CDC* pDC, CRect* pRect)
{ CBrush* pBrush;
pBrush = new CBrush (RGB (36,94,220)); //(RGB (92,110,174)); int nWidth = pRect->Width ();
int nHeight = pRect->Height ();
CRect rect; for (int i=0; i<nHeight; i++)
{
rect.SetRect (0, i, nWidth, i+1 );
pDC->FillRect (&rect, pBrush);
}
delete pBrush;
}
现在的问题是该椭圆按钮的颜色都是一种颜色,没有立体感,我希望椭圆从外向内,颜色渐渐变深,能有立体感效果,不知道如何实现!
void CMyBtn::GradientFill (CDC* pDC, CRect* pRect)
{ CBrush* pBrush;
pBrush = new CBrush (RGB (36,94,220)); //(RGB (92,110,174)); int nWidth = pRect->Width ();
int nHeight = pRect->Height ();
CRect rect; for (int i=0; i<nHeight; i++)
{
rect.SetRect (0, i, nWidth, i+1 );
pDC->FillRect (&rect, pBrush);
}
delete pBrush;
}
现在的问题是该椭圆按钮的颜色都是一种颜色,没有立体感,我希望椭圆从外向内,颜色渐渐变深,能有立体感效果,不知道如何实现!
m_MyPen0.CreatePen(PS_INSIDEFRAME | PS_SOLID, 1, RGB(255, 255, 255));
m_MyPen1.CreatePen(PS_INSIDEFRAME | PS_SOLID, 1, RGB(232, 232, 232));
m_MyPen2.CreatePen(PS_INSIDEFRAME | PS_SOLID, 1, RGB(209, 209, 209));
...画的时候选择不同的画笔自绘按钮的不同部分...
上面的画笔示例是灰度变化的,要画其它颜色的调整画笔创建的RGB即可.