关于vc 打印程序的一些有用代码
来源:互联网 发布:h3c f1000管理端口 编辑:程序博客网 时间:2024/05/22 22:41
void PrintTest()
{
CPrintDialog pd(FALSE, PD_ALLPAGES | PD_COLLATE | PD_NOPAGENUMS |
PD_HIDEPRINTTOFILE);
if(pd.GetDefaults())
{
DOCINFO di;
memset( &di, 0, sizeof(DOCINFO) );
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Printing Test";
di.lpszOutput = (LPTSTR) NULL;
di.fwType = 0;
HDC hDC=pd.CreatePrinterDC();
CDC dc;
dc.Attach(hDC);
dc.StartDoc(&di);
dc.StartPage();
dc.MoveTo(0,0);
dc.LineTo(1000,1000);
dc.EndPage();
dc.EndDoc();
dc.DeleteDC();
}
}
HDC hdcPrint = GetDefaultPrinterDC();
CPrintDialog pd(FALSE,PD_ALLPAGES|PD_ALLPAGES|PD_NOPAGENUMS,NULL);
pd.DoModal();
HDC hdcPrint = pd.CreatePrinterDC();
if(hdcPrint == NULL)
{
MessageBox("打印机初始化失败!", "错误", MB_ICONSTOP);
return;
}
/* 设置系统打印模式
#define DMORIENT_PORTRAIT 1 //纵向
#define DMORIENT_LANDSCAPE 2 //横向
*/
/************************************************************************/
void CXTReportApp::SetLandscapeMode(int PrintMode)
{
PRINTDLG pd;
pd.lStructSize=(DWORD)sizeof(PRINTDLG);
BOOL bRet=GetPrinterDeviceDefaults(&pd);
if(bRet)
{
// protect memory handle with ::GlobalLock and ::GlobalUnlock
DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(m_hDevMode);
// set orientation to landscape
if(PrintMode==1)//纵向打印
pDevMode->dmOrientation=DMORIENT_PORTRAIT;
else if(PrintMode==2)//横向打印
pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
::GlobalUnlock(m_hDevMode);
}
}
extern void DrawInfo(CDC &memDC, PRNINFO PrnInfo);
extern UINT m_nCxSelected ;
BOOL PrintSetup(HWND hParent, BOOL bDefault = FALSE);
BOOL Print(HWND hParent, LPCTSTR lpszDocName = "PrintListCtrl", BOOL bDefault = FALSE);
BOOL CPrintListCtrl::PrintSetup(HWND hParent, BOOL bDefault)
{
PRINTDLG stPD;
memset(&stPD, 0, sizeof(stPD));
stPD.lStructSize = sizeof(stPD);
stPD.hwndOwner = hParent;
stPD.Flags = PD_ALLPAGES | PD_DISABLEPRINTTOFILE |
PD_NOPAGENUMS | PD_NOSELECTION | PD_RETURNDC;
stPD.hDevNames = NULL;
stPD.hDevMode = bDefault ? NULL : m_hDevMode;
if (bDefault)
{
stPD.Flags |= PD_RETURNDEFAULT;
}
BOOL bRet = PrintDlg(&stPD);
if (bRet == FALSE && CommDlgExtendedError()) return FALSE;
if (bRet == FALSE && !CommDlgExtendedError()) return TRUE;
ClearPrintDC();
m_hPrintDC = stPD.hDC;
return (m_hPrintDC != NULL);
}
- 关于vc 打印程序的一些有用代码
- 一些有用的代码
- 一些有用的关于程序的网址积累
- 一些有用的js程序
- oracle的一些有用程序
- 一些有用的JADE代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的javaScript代码
- 一些有用的js代码
- 一些有用的js代码
- 一些有用的小代码
- 一些有用的代码片段
- MVC的一些有用代码
- 打印的一些程序
- 评论-支持herock观点:TrackBack不死
- 执行HTTP GET
- Function实现ALV Table 二:ALV的弹出窗口形式
- Google的价值观:10个真理
- Origin of Endian
- 关于vc 打印程序的一些有用代码
- 发布10天 Chrome份额稳定在5-6%之间
- The Anatomy of a Large-Scale Hypertextual Web Search Engine
- 详细解析Java中抽象类和接口的区别
- SQL SERVER 2005 RowNumber() 惹的祸
- Dos 实用网络命令
- Sql Server 2005中distinct的用法?
- 初学java
- 设定环境变数