这是解决有缺陷的打印机驱动程序的最后努力。我想渲染到兼容的位图,然后在复制到打印机DC之前或之后旋转它。
我熟悉推荐GDI +的this previous question,但我很想知道是否只有使用GDI的答案。
答案 0 :(得分:1)
这些技巧都应该有效:
PlgBlt
,其“执行从源设备上下文中指定矩形到目标设备上下文中指定平行四边形的位颜色数据位块传输”,坐标为旋转的平行四边形
SetWorldTransform
的组合,传入旋转矩阵和普通BitBlt
。
注意这两点,源DC中不应该有旋转变换,只有目标。
我担心我现在无法给你一个代码示例,但一些谷歌搜索确实发现了一些如何使用这些函数旋转任意度数的例子,你可以修改为代码为90度:
PlgBlt
(请原谅这里的语言......这是VB)SetWorldTransform
and BitBlt
。请注意,如果您的代码在其他位置修改了转换(例如,任何VCL的TGraphicControl
后代将在其Paint
方法中完成此操作,并且很可能MFC和其他常见的WinAPI包装器也可能这样做了使用GetWorldTransform
保存当前转化并使用ModifyWorldTransform
应用您的转化,而不是设置(覆盖)当前转化。与使用GDI +相比,我不确定这些算法是否快速或简单:)