我正在win32中实现边框控件,并且我已经为该边框实现了各种样式。我使用简单的MoveTo()和LineTo()命令绘制边框。 我的问题是,当我为边框选择一些新样式时,它会开始在当前绘制的边框上绘画。我知道我需要刷新/重新绘制我的窗口,以便有一个新的画布。我现在正在使用InvalidateRect()来实现此目的。但我担心,如果我有其他窗口与我的边框控制窗口(作为子窗口)相关联,这将如何影响子窗口?我将需要重绘此窗口上的所有内容,对吗?
其次,无论如何我可以在GDI区域(HRGN)内画线吗?到目前为止,我所遇到的是如何用一些填充颜色填充HRGN。无论如何我可以检索与该特定HRGN对象相关联的HDC吗?
答案 0 :(得分:0)
这不是问题,您绘制的任何内容都会被子窗口矩形自动剪裁。无需额外代码。底层窗口样式标志是WS_CLIPCHILDREN。
您无法在区域中绘制线条,也无法与设备上下文相关联。除了绘制区域然后在绘制消息处理程序中绘制线条之外。你可能对路径感兴趣。 MSDN文档start here。