我的回答是假定你已经可以显示位图了!显示和打印的区别在于,分辨率的差别----打印机与屏幕的分辨率是不一样的!
其中cyDIB和cxDIB是位图的高度和宽度.
int cxPage = pDC->GetDeviceCaps(HORZRES);
int cyPage = pDC->GetDeviceCaps(VERTRES);
// get printer pixels per inch
int cxInch = pDC->GetDeviceCaps(LOGPIXELSX);
int cyInch = pDC->GetDeviceCaps(LOGPIXELSY);
rcDest.top = rcDest.left = 0;
rcDest.bottom = (int)(((double)cyDIB * cxPage * cyInch)/ ((double)cxDIB * cxInch));
rcDest.right = cxPage;如果还有问题,请与我联系,非常愿意与你讨论!