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

透明圆形旋钮

2012-12-16 
透明圆形按钮继承CWnd类Draw3dRect画一个矩形,怎么画一个圆形的?void CMyButton::OnPaint() {CPaintDC dc(

透明圆形按钮

继承CWnd类
Draw3dRect画一个矩形,怎么画一个圆形的?


void CMyButton::OnPaint() 
{
CPaintDC dc(this);
dc.Draw3dRect(mRect,RGB(50,50,50),RGB(250,250,250));
CRect tmp;
tmp.CopyRect(mRect);
tmp.DeflateRect(1,1,1,1);
dc.Draw3dRect(tmp,RGB(50,50,50),RGB(250,250,250));
tmp.DeflateRect(3,3,3,3);
}

[最优解释]
引用:
CRgn rgn;
rgn.CreateEllipticRgnIndirect(tmp);
SetWindowRgn(rgn);


引用:
RoundRect


引用:
先用CreateRoundRectRgn函数创建一个圆角矩形,然后通过SetWindowRgn函数设置到窗口上;

RoundRect
这个不好,因为它会把圆中间用背景画刷填充。
Ellipse也不行,同样会填充。
如上,调用CRgn的CreateRoundRectRgn,把矩形改造成圆形。SetWindowRgn只对顶层窗口有效,子窗口没用。
dc.FrameRgn(); 这样就可以绘制不填充的圆形。至于圆边框颜色,需要先dc.SelectObject()选择一个CPen。
[其他解释]
CRgn rgn;
rgn.CreateEllipticRgnIndirect(tmp);
SetWindowRgn(rgn);
[其他解释]
RoundRect
[其他解释]
先用CreateRoundRectRgn函数创建一个圆角矩形,然后通过SetWindowRgn函数设置到窗口上;

热点排行