0

我在win32中实现了一个边框控制,我已经为那个边框实现了各种样式。我正在使用简单的 MoveTo() 和 LineTo() 命令来绘制边框。我的问题是,当我为我的边框选择一些新样式时,它开始在当前绘制的边框上绘画。我知道我需要刷新/重新粉刷我的窗口才能获得新的画布。我现在使用 InvalidateRect() 来实现这个目的。但我担心,如果我有其他窗口与我的边框控制窗口(作为子窗口)相关联,这将如何影响子窗口?我需要重新绘制此窗口上的所有内容,对吗?

其次,无论如何我可以在 GDI 区域 (HRGN) 内画线吗?到目前为止,我所遇到的只是如何用一些填充颜色填充 HRGN。无论如何我可以检索与该特定 HRGN 对象关联的 HDC 吗?

4

1 回答 1

0

这不是问题,您绘制的任何内容都会被子窗口矩形自动裁剪。不需要额外的代码。底层窗口样式标志是 WS_CLIPCHILDREN。

您不能在区域中绘制线,它们也不与设备上下文相关联。除了绘制区域然后在绘制消息处理程序中绘制线条之外。您可能对路径感兴趣。MSDN 文档从这里开始

于 2012-05-15T05:49:14.733 回答