VC滚动视图(CScrollView类)的局部更新算法示例
在使用CScrollView(滚动视图)类时,不需要在其OnDraw/OnPaint中全部进行重绘;只需获取其updateregion,绘制落在此区域内的对象即可。这样可以提高显示效率,减少闪烁。在拖动窗口大小时(WM_SIZE消息),updateregion是整个客户区;在点击或者拖放滚动条时(或者使用了CScrollView::ScrollToPositon函数),updateregion是相应的局部矩形(即新出现在在窗口中的部分)。不管是那种情况,可以将updateregion转换至“用户坐标系”,遍历用户在此坐标系中打算绘制的对象,确定哪些对象落在了updateregion内,以便进行重绘。这样,在CScrollView::OnDraw/O
下载地址
用户评论