在WINAPI中指定窗口绘制区域

时间:2010-08-12 12:31:07

标签: c winapi

我正在使用一个第三方SDK来获取hwnd(窗口句柄)并在我的窗口上绘制一些东西。我想指定窗口绘画区域(左,右,上,下)?怎么可能这样做?我找到了WINAPI函数SetWindowRgn,但它对我不好,因为这个函数指定了整个窗口区域。我需要指定窗口绘画区域。

2 个答案:

答案 0 :(得分:3)

SetWindowRgn()正是您所需要的。您可以使用CreateRectRgn()从矩形创建区域。可以找到窗口区域的良好介绍here

或者您可以修改窗口的非客户区域,但我不建议这样做,因为它有几个副作用。

答案 1 :(得分:1)

如果可以为此库提供HDC而不是窗口句柄 - 您应该这样做。 也就是说,获取窗口客户区(GetDC)的绘图DC,创建所需的剪切区域并设置它(SelectClipRgn)。

如果您的图书馆坚持接受窗口句柄 - 我可以提出以下解决方案:

在您的窗口中创建另一个子窗口,为其设置适当的区域。并将那个窗口的句柄提供给您的库。