我正在使用一个第三方SDK来获取hwnd(窗口句柄)并在我的窗口上绘制一些东西。我想指定窗口绘画区域(左,右,上,下)?怎么可能这样做?我找到了WINAPI函数SetWindowRgn,但它对我不好,因为这个函数指定了整个窗口区域。我需要指定窗口绘画区域。
答案 0 :(得分:3)
SetWindowRgn()正是您所需要的。您可以使用CreateRectRgn()从矩形创建区域。可以找到窗口区域的良好介绍here。
或者您可以修改窗口的非客户区域,但我不建议这样做,因为它有几个副作用。
答案 1 :(得分:1)
如果可以为此库提供HDC
而不是窗口句柄 - 您应该这样做。
也就是说,获取窗口客户区(GetDC
)的绘图DC,创建所需的剪切区域并设置它(SelectClipRgn
)。
如果您的图书馆坚持接受窗口句柄 - 我可以提出以下解决方案:
在您的窗口中创建另一个子窗口,为其设置适当的区域。并将那个窗口的句柄提供给您的库。