16,471
社区成员
发帖
与我相关
我的任务
分享
void TestPrinter()
{
CPrintDialog dlg(FALSE, PD_SELECTION | PD_USEDEVMODECOPIES);
if(dlg.DoModal() == IDOK)
{
CDC *pDC = CDC::FromHandle(dlg.GetPrinterDC());
DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = _T("MyPrinter");
// call StartDoc() to begin printing
if (pDC->StartDoc(&docinfo) >= 0)
{
// start a page
if (pDC->StartPage() >= 0)
{
int nSaveDC = pDC->SaveDC();
//draw on pDC
{
CPen pen(PS_SOLID, 1, RGB(0,0,0));
CPen *pOldPen = pDC->SelectObject(&pen);
//可绘制区域
CRect rcDev(0,0,
pDC->GetDeviceCaps(HORZRES),
pDC->GetDeviceCaps(VERTRES));
//绘制一个椭圆
pDC->Ellipse(&rcDev);
}
//恢复DC
pDC->RestoreDC(nSaveDC);
//End page
pDC->EndPage();
}
//End print
pDC->EndDoc();
}
pDC->DeleteDC();
}
}