http://www.yesky.com/13/1700013.shtml打印API
http://www.bloghome.cn/topics/vc/4_22.htm打印API
http://www.bloghome.cn/topics/vc/skill13.htm
http://dev.hackbase.com/hackbase32/how514426.htm
设置纸张大小
if(!PrintDlg(&pd)) return FALSE;
ASSERT(pd.hDC!=NULL);
//设置纸张大小daiguopeng,
DEVMODE *dMode=(DEVMODE *)pd.hDevMode;
dMode->dmFields= DM_PAPERSIZE|DM_PAPERLENGTH|DM_PAPERWIDTH;
dMode->dmPaperSize=256;
dMode->dmPaperLength=1140;
dMode->dmPaperWidth=1900;
if((pd.hDC=ResetDC(pd.hDC,dMode))==NULL)return FALSE;//设置
或者
//获取打印机的设备属性
CDC dc;
//把打印设备环境附加到DC对象
CPrintDialog pdlg(FALSE,PD_NOPAGENUMS|PD_NOSELECTION,NULL);
BOOL bFindPrinter=pdlg.GetDefaults();
if(!bFindPrinter)
return;
ASSERT(pdlg.m_pd.hDC!=NULL);
//设置纸张大小daiguopeng,
DEVMODE *dMode=(DEVMODE *)pdlg.GetDevMode();
dMode->dmFields= DM_PAPERSIZE|DM_PAPERLENGTH|DM_PAPERWIDTH;
dMode->dmPaperSize=256;
// dMode->dmFields= DM_PAPERLENGTH;
dMode->dmPaperLength=(listbox.GetCount()+3)*80/2.212;
// dMode->dmFields= DM_PAPERWIDTH;
dMode->dmPaperWidth=1000;//2212点
::GlobalUnlock(dMode);//解除pdlg.GetDevMode(); 封锁的内存
if((pdlg.m_pd.hDC=ResetDC(pdlg.m_pd.hDC,dMode))==NULL)return;
dc.Attach(pdlg.GetPrinterDC());