此问题是由对另一个问题Common Controls on a Transparent Window?的答复所产生的。
显然,有一种方法可以只绘制背景而无需再次绘制控件本身,这将解决在透明背景上具有通用控件按钮的问题。
所以我的问题是,在公共控件绘制自身之后,如何仅绘制公共控件周围的背景?
答案 0 :(得分:1)
关于如何重绘可见边框。
使用RoundRect
绘制的圆角矩形作为代表
FrameRgn函数通过使用指定的画笔在指定区域周围绘制边框。
简单的代码演示:
HRGN hRegion = ::CreateRoundRectRgn (0, 0, ClientWidth, ClientHeight,12,12);
Canvas->Brush->Style = bsSolid;
Canvas->Brush->Color = RGB(96, 96, 96);
::FrameRgn(Canvas->Handle, hRegion, Canvas->Brush->Handle, 2, 2);
::DeleteObject(hRegion); // Don't leak a GDI object
您需要的链接:Redraw Border