用于滚动大图像故障的MSDN示例

时间:2015-06-22 00:43:43

标签: c++ c winapi scrollbar gdi

引言及相关资料:

我正在尝试以自然大小在主窗口中绘制图像。目前我需要渲染EMF。

浏览互联网后,我找到了this MSDN example

问题:

我试了一下,发现它效果不好。

用户右键单击后,如说明所示,桌面截图已在主窗口中正确绘制。

然而,当用户调整窗口大小时,绘制工件会出现如下图所示。当用户滚动一点然后调整窗口大小时,也会出现以下效果。

这是图片:

enter image description here

这是我第一次尝试滚动图像并使用滚动条,所以我真的很难找到解决方案。

问题:

  

如何修复商品代码以删除此可视工件?

     

你能推荐另一个例子,比如教程/代码示例/等   我可以学习吗?

     

你能提供可以帮助我的“口头”指示/指导吗?

为了使您的任务更加轻松,以下是可以重现问题的最小代码。请注意,我只需复制/粘贴窗口过程并添加最少的程序代码以创建工作演示:

(a, b) = (8, 9)

1 个答案:

答案 0 :(得分:4)

根据您的描述,问题似乎只是在您的窗口调整大小时不会重新绘制。

在放大窗口时使用InvalidateRect强制重新绘制新覆盖的区域,或者在窗口类中设置CS_VREDRAWCS_HREDRAW样式以重新绘制客户区域自动。