请问各位大侠为什么设置打印DC会这样?
这是我的代码:
HDC PrintDC;
DOCINFO docin;
docin.cbSize = sizeof(DOCINFO);
docin.lpszDocName = "TestDoc";
docin.lpszOutput = NULL;
CPrintDialog PrintDialog(TRUE,PD_ALLPAGES|PD_NOPAGENUMS,NULL);
if(!PrintDialog.GetDefaults()) return FALSE;
PRINTDLG *pPrintDlg = &PrintDialog.m_pd;
AfxGetApp()->GetPrinterDeviceDefaults(pPrintDlg);
DEVMODE* lpDevMode = (DEVMODE*)::GlobalLoc(pPrintDlg>hDevMode);
lpDevMode->dmPaperSize=DMPAPER_USER;
lpDevMode->dmPaperLength = 1000; //设定纸长为 3 厘米
lpDevMode->dmPaperWidth = 1200; //设定纸宽为 5 厘米
lpDevMode->dmFields |= DM_PAPERLENGTH|DM_PAPERWIDTH|DM_PAPERSIZE;
PrintDC = PrintDialog.CreatePrinterDC(); // 返回一个打印DC句柄
SetMapMode(PrintDC,3);
ResetDC(PrintDC,lpDevMode);
::GlobalUnlock(pPrintDlg->hDevMode);
int Mode = GetMapMode(PrintDC);
但是Mode怎么是1呀?
问题点数:0、回复次数:2Top
1 楼huanyun(无妻徒刑)回复于 2003-11-01 13:58:20 得分 0
#define MM_TEXT 1
#define MM_LOMETRIC 2
#define MM_HIMETRIC 3
#define MM_LOENGLISH 4
#define MM_HIENGLISH 5
#define MM_TWIPS 6
#define MM_ISOTROPIC 7
#define MM_ANISOTROPIC 8
默认的MM_TEXT当然是1
int SetMapMode(
HDC hdc, // handle of device context
int fnMapMode // new mapping mode
);
根据需要改变Top
2 楼txdxun()回复于 2003-11-01 14:31:15 得分 0
检查一下你的setmapmode的返回值Top




