我们可以避免WM_PAINT时使用滚动窗口在win32?



我是win32编程新手,有一个很幼稚的问题。

假设有一个1920x1280大小的应用程序窗口,我在它上面创建了一个1920x2560大小的子窗口(垂直屏幕大小的两倍)。现在我加载一个图像到这个子窗口,它的大小与子窗口的大小相同,即1920x2560。

现在我的问题是,如果我使用ScrollWindow垂直滚动,我是否一定需要重新绘制脏矩形(底部部分),因为图像已经加载?难道不可能通过移动屏幕缓冲区来避免这种情况吗?或者有没有其他方法可以避免重画,可能是使用位图或其他东西?

应用程序在滚动,更改或显示时绘制窗口选择显示的一部分数据

,但您只能在更新区域中绘制差异。
还需要注意的是,禁用WM_ERASEBKGND消息的默认处理可以使其平滑。
你的想法的缺点是总是在客户端区域之外绘制,如何移动屏幕缓冲区以避免重新绘制?

最新更新