我正在尝试以自然大小在主窗口中绘制图像。目前我需要渲染EMF。
浏览互联网后,我找到了this MSDN example。
我试了一下,发现它效果不好。
用户右键单击后,如说明所示,桌面截图已在主窗口中正确绘制。
然而,当用户调整窗口大小时,绘制工件会出现如下图所示。当用户滚动一点然后调整窗口大小时,也会出现以下效果。
这是图片:
这是我第一次尝试滚动图像并使用滚动条,所以我真的很难找到解决方案。
如何修复商品代码以删除此可视工件?
你能推荐另一个例子,比如教程/代码示例/等 我可以学习吗?
你能提供可以帮助我的“口头”指示/指导吗?
为了使您的任务更加轻松,以下是可以重现问题的最小代码。请注意,我只需复制/粘贴窗口过程并添加最少的程序代码以创建工作演示:
(a, b) = (8, 9)
答案 0 :(得分:4)
根据您的描述,问题似乎只是在您的窗口调整大小时不会重新绘制。
在放大窗口时使用InvalidateRect
强制重新绘制新覆盖的区域,或者在窗口类中设置CS_VREDRAW
和CS_HREDRAW
样式以重新绘制客户区域自动。