您的位置:首页 > 其它

VC实现打印功能

2005-10-26 12:08 567 查看
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());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null api