绘制到WM_PAINT之外的最小化窗口是否无害?

时间:2017-02-05 12:33:34

标签: winapi

MSDN所述,允许在WM_PAINT之外绘制。当窗口处于最小化状态时,这是否也适用?

我做了一些测试,并且GetDC(hwnd)返回设备上下文,即使窗口最小化并且绘制到它也不会导致任何问题,尽管在实践中没有任何东西被绘制,因为窗口不是&#39 ; t可见。

这对我来说完全没问题。我只是问这个问题,以了解在WM_PAINT之外绘制到最小化窗口是否无害,或者我是否必须编写代码来检查窗口是否被最小化并且不会在案件。但是,如果绘制到最小化窗口是无害的,我可以跳过编写这样的代码。

2 个答案:

答案 0 :(得分:1)

当然你可以画外面的WM画。 WM_PAINT被发送到您的窗口,以指示必须重绘窗口的某些区域。例如,当一个像对话框这样的窗口弹出你的窗口然后被删除时。

在WM绘制之外有很多合法的案例,例如你需要更新某种类型的动画。

请记住,所有绘图命令都受限于剪切区域之外的剪切区域

注意这适用于在实际窗口上绘图,在内存中绘制位图和打印机上下文可以随时进行。

答案 1 :(得分:-2)

像Windows这样的成熟平台很可能会采用防御性编写的代码来阻止这种无操作。但是说明说应该只在响应WM_PAINT消息时才进行绘图,你应该遵守。否则,如果程序出现错误,你就不会站立起来。

对于爱好编程,这几乎不重要。对于商业节目,它可能意味着被起诉或不起诉要求赔偿。