从我的程序逻辑中我知道我需要在简单的WinForms top_left = {x=32,y=32}
的{{1}}和bottom_right = {x=64,y=64}
之间重绘矩形。我不想重绘整个客户区,而只是其中的一部分(性能原因)。 WinApi无法分辨哪些部分必须重绘,我必须告诉它。那我怎么能这样做呢?
每次需要此功能时,要重绘的矩形都不同。
我想:
Control
消息(但我无法弄清楚如何传输矩形,因为当此消息通常到达时,wParam和lParam始终为0)(希望这不重复。如果是,我会删除。)
答案 0 :(得分:3)
使用接受矩形的Invalidate
方法。
control.Invalidate(new Rectangle(32, 32, 32, 32));
control.Update(); //to invalidate control immediately
它使特定的控制区域无效,该控制区域将在下一次喷涂操作中重新粉刷。