如题
解决方案 »
- COleDateTime的问题
- 绝对是高难道问题,请高手进来讲解
- 挑战界面高手!MSN上面的一个提示栏的实现问题!
- TAB键处理的问题
- 如何运用知识来编程,请大家赐教
- 高手指点
- 在 Stdafx.h 里加如#include <afxsock.h> 老是报错:fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #i
- FtpGetCurrentDirectory()怎么不好使?
- 动态链接库中错误提示的问题。为什么没有人理我?
- 有关COM客户程序的初始化求救!!
- 被ActiveX的版本搞胡涂了~~
- 求救:静态和动态库中 很奇怪的问题
能不能解释一下打印倍数,如何设置打印倍数呀?
谢谢!
若不使用MM_TEXT映射模式,用GDI打印设置为何种打印模式为宜呀?我是如此计算逻辑尺寸的:
pInfo->m_rectDraw.SetRect(0, 0, pDC->GetDeviceCaps(HORZRES), pDC->GetDeviceCaps(VERTRES));
//为打印区域计算逻辑尺寸。本例可以省略
pDC->DPtoLP(&pInfo->m_rectDraw);
应该说我在往打印设备上输出时用的是逻辑坐标。却打印效果不一样,好郁闷呀。
SetMapMode(MM_LOENGLISH) //设置的每一个单位长度为0.01英寸。
SetMapMode(MM_HIENGLISH) //设置的每一个单位长度为0.001英寸。
SerMapMode(MM_HIMETRIC) //设置的每一个单位长度为0.001毫米。
这些设置都是逻辑单位长度,和打印机的物理的分辨率没有关系。
你对打印机设置好了上面的逻辑单位以后,在打印的时候,就可以直接使用逻辑单位作为坐标了。譬如要打印一个100毫米边长的正方形,如下:
pDC->SetMapmode(MM_LOMETRIC);//设置0.1毫米作为逻辑长度单位,y轴的方向是向上的
pDC->SetWindowOrg(0,1500);//设置窗口原点
pDC->Rectangle(0,0,1000,1000);//用当前的画笔绘制一个边长为100毫米的正方形上面的方法,绘制一个边长为100毫米的正方形。可以不管屏幕的分辨率可以使用 GetDeviceCaps(HORZSIZE) 获取打印纸的宽度(毫米单位)
使用 GetDeviceCaps(VERTSIZE) 获取打印纸的高度(毫米单位)