c ++重绘窗口的一部分

时间:2010-08-25 00:33:01

标签: c++ visual-c++ winapi gdi+

我知道如何重新绘制完整的窗口,但我不知道如何重绘窗口的模式,就像我使用gdi +绘制一个squre而不是我想要更改它的坐标所以我想重新绘制squre而不是整个窗口<登记/> anyidea?

<小时/> 我也试过这个

RECT rect2;
rect2.left=0;
rect2.top=100;
rect2.right=225;
rect2.bottom=300;
InvadiateRect(hwnd, &rect2, false);

它仍然重绘整个窗口

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用足够大的矩形调用InvalidateRect(),以覆盖两个您移动的方块的旧位置和新位置。然后,Windows将调用您的WM_PAINT处理程序重新绘制已更改的屏幕区域。

UnionRect()函数有助于计算此重绘矩形。