InvalidateRect你懂的
菜鸟二号 2011-04-13 12:56:41 不用说这个函数的用途了,大家都应该比我还熟悉了..O(∩_∩)O哈哈~
但是本人有几点存在疑问:
该函数可控制使窗体的局部无效(就是重绘),可是同时该函数依然发送WM_PAINT消息,而BeginPaint所得到的DC与GetDC所
获取到的DC并不一样(本人猜测,如果你觉得这句话不对,可以指出)。
在WM_PAINT里,会执行全部的绘图部分,那这些代码的执行时间跟InvalidateRect后重绘的时间是否一样呢
如果你没看懂我的问题,我换一种简单的方式说:就是说InvalidateRect窗体是局部重绘的,可是这个局部绘制是要执行WM_PAINT消息里的全部代码,这个是否浪费时间和CPU,不管区域大小,都是基本类似的时间(电脑环境不变时)?
如果依然没看懂,我再换:就是说InvalidateRect局部重绘窗体的方法和GetDC后,自己绘制局部,那个更省时间和CPU(且不说那种方法的功能好)?
我自己想了一下,可以总结为之下的问题:
就是说InvalidateRect发送的WM_PAINT消息里的DC不一定是窗体的整个DC,可能是局部,那如果在DC的外面画图(例如BitBlt(hdc,-100,-100,20,20...),注意这个坐标是负的),那会不会耗时间和CPU?
如果你懂得这些问题,不妨提示一下,如果你也不懂,没事,我们一起研究...