我做过,可以像 Word 的预览窗体一样分页预览,但是很复杂,一下子肯定说不完,
只能给你提供一点方向性的建议。
预览的载体可以是 TPaintBox,也可以从 TCustomControl 继承一个白板。
你会要用到下面的 API 函数设置 Canvas 的坐标原点;
SetViewportOrgEx
SetWindowOrgEx
以及 SetMapMode 函数设置 DC 的映射模式,一般可以设为 MM_ISOTROPIC;
当改变预览缩放比例时,下面的函数会帮你进行坐标尺寸缩放:
SetWindowExtEx SetViewportExtEx
但要注意下面的说明:
When MM_ISOTROPIC mode is set, an application must call the SetWindowExtEx
function before calling SetViewportExtEx.
大致就是这些,细节的实现就不尽述了,希望能对你有所帮助。
Good luck.
From: BaKuBaKu