2

我有几个自定义绘制的 CStatic 用于SetWindowRgn为它们中的每一个赋予不规则(非矩形)形状。我需要使每个 Controls 后面的区域无效OnEraseBkgnd,我想CWnd::InvalidateRgn在父级上使用它,CDialog但是我需要将其CRgn转换为父级的坐标。我想要类似的东西,Cwnd::ScreenToClient(CRgn *)但据我所知,不存在这样的东西。

我如何获得相当于CWnd::ScreenToClientCRgn 的值?

4

1 回答 1

3
  • 使用分割CRgn区域成矩形GetRegionData
  • ScreenToClient单个矩形
  • 使用将输出组合回区域CreateFromData

另一种选择是使用从单个点CRgn::OffsetRgn获得的距离来偏移该区域。ScreenToClient

于 2013-10-07T12:56:09.687 回答