继承CWnd类
Draw3dRect画一个矩形,怎么画一个圆形的?
C/C++ code
?1234567891011 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); }
RoundRect
这个不好,因为它会把圆中间用背景画刷填充。
Ellipse也不行,同样会填充。
如上,调用CRgn的CreateRoundRectRgn,把矩形改造成圆形。SetWindowRgn只对顶层窗口有效,子窗口没用。
dc.FrameRgn(); 这样就可以绘制不填充的圆形。至于圆边框颜色,需要先dc.SelectObject()选择一个CPen。