这是解决多function打印机驱动程序的最后一招。 我想渲染到一个兼容的位图,然后旋转它之前或复制到打印机DC。
我熟悉这个推荐GDI +的前一个问题 ,但是我很想知道是否只有使用GDI的答案。
这些技术都应该工作:
PlgBlt
,其“执行颜色数据的位从源设备上下文中的指定矩形到目标设备上下文中的指定平行四边形的位块传送”,旋转平行四边形的坐标
SetWorldTransform
,传入旋转矩阵和普通BitBlt
。
请注意,在这两种情况下,源DC中不应该有旋转转换,只有目的地。
恐怕我现在还不能给你一个代码示例,但是一些使用Google的例子也提供了一些如何使用这些函数来旋转任意度数的示例,您可以将其修改为硬编码为90度:
PlgBlt
(原谅这里的语言…这是VB) SetWorldTransform
和BitBlt
。 请注意,如果你的代码在其他地方修改了转换(例如,任何VCL的TGraphicControl
后裔将在其Paint
方法中完成此操作,并且很可能MFC和其他常见的WinAPI包装器可能也会这样做),则应该使用GetWorldTransform
来保存当前的转换,应用你的ModifyWorldTransform
而不是设置(覆盖)当前的转换。 我不确定这些数据与使用GDI +相比是否简单快捷