打印时,使用的单位
例子:打印18磅,Times New Roman的字体,x=10cm, y=-20cm
创建字体:
m_testFont->CreateFont(18*20, 0, 0, 0, FW_NORMAL,
0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, 0, DEFAULT_QUALITY,
DEFAULT_PITCH|FF_ROMAN, "Times New Roman");
打印程序:
CDC PrinterDC;
PrinterDC.SetMapMode(MM_TWIPS);
PrinterDC.SetTextColor(RGB(0, 0, 0));
CFont* pOldFont = PrinterDC.SelectObject(m_testFont);
PrinterDC.TextOut(10, -20, m_textstr);
PrinterDC.SelectObject(pOldFont);
问题:
这样打印出的字体是对的,但是位置不对,请问pixel和cm怎么换算的,有什么函数可以转换。
我用
SetMapMode(hPrintDC,MM_HIMETRIC);
PrinterDC.TextOut(10000, -20000, m_textstr);
位置差不多,但是还是有误差,主要是字体的大小不对了。
我用
SIZE printsize;
name_printsize.cx=10;
name_printsize.cy=20;
PrinterDC.HIMETRICtoLP(&printsize);这个函数溢出了
请问那位高手可以教我。