【发布时间】:2012-02-05 02:53:10
【问题描述】:
我正在我的 CScrollView 中使用 GDI 绘制一些图形和文本。我需要实现缩放功能。我只需要放大 out 功能,不需要放大 in 超出正常渲染的范围。
这是我最好的想法:
使用带有 SetWindowExt/SetViewportExt 的 MM_ANISOTROPIC 映射模式... 这种方法的问题是它不能缩放文本。有没有办法强制 MFC 也缩放文本?我唯一能想到的就是根据选定的缩放值设置文本字体大小,但我不确定这是否会很好看……
绘制到内存 DC,并使用 StretchBlt 将 blit 到适当大小的客户区(使用 SetScrollSizes... 设置)。这将解决文本缩放问题。
还希望在该过程中具有抗锯齿效果。我认为上述两种方法本身都应该实现这一点,但我不知道哪个看起来更好。此外,我稍后将不得不实现打印/打印预览功能(使用 MFC 的标准实现从 doc/view 架构),所以我需要与此兼容的方法。
需要您的建议。走哪条路,为什么。也许其他选项也存在?..
【问题讨论】: