
GDI+
文章平均质量分 74
mydriverc
技术为本
展开
-
Invalidate和UpdateWindow的区别
Invalidate在消息队列中加入一条WM_PAINT消息,其无效区为整个客户区。 UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中WM_PAINT消息(最多只有一条)的无效区。 效果很明显,当调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不转载 2007-08-03 10:12:00 · 2093 阅读 · 0 评论 -
提高绘图效率
Invalidate();InvalidateRect();InvalidateRgn()使绘图区无效。Invalidate()更新整个绘图区;InvalidateRect(),InvalidateRgn()使部分绘图区无效。在View中:可用Invalidate();InvalidateRect();InvalidateRgn()使绘图区无效在DOC中:UpdateAllViews(参CView转载 2007-08-03 10:26:00 · 939 阅读 · 0 评论 -
VC防止窗口和控件闪烁的方法
1、将Invalidate()替换为InvalidateRect() Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,但是事实是,如果你确实需要改善闪烁的情况,计算一个Rect所用的时间比转载 2007-08-03 10:30:00 · 852 阅读 · 0 评论 -
InvalidateRgn-WINDOWS API
InvalidateRgn函数通过添加一个区域到一个窗口的更新区域中来使指定矩形的客户区域无效;这个无效的区域和所有更新区域中的其他区域将被标记用来在下一个WM_PAINT消息发生的时候描绘。BOOL InvalidateRgn( HWND hWnd, // 窗口的句柄 HRGN hRgn, // 区域的句柄 BOOL bErase // 擦除状态);参数:hWnd:[输转载 2007-08-03 10:39:00 · 1624 阅读 · 0 评论