一个对话框中的一个按钮,想把这个对话框打印下来,下面是我看的别人的代码,结果是,能打印,但是是空白纸,什么也没有,求教该怎么做?代码如下:
CPrintDialog print(false);
if(print.DoModal()==IDOK)
{
CDC printcd;
printcd.Attach(print.GetPrinterDC()); DOCINFO pdoc;
pdoc.cbSize=sizeof(pdoc);
pdoc.lpszDocName="pdoc";
pdoc.lpszDatatype=NULL;
pdoc.fwType=NULL;
pdoc.lpszOutput=NULL;
if(printcd.StartDoc(&pdoc)>=0)
{
LOGFONT logfont;
memset(&logfont,0,sizeof(LOGFONT));
logfont.lfHeight=75;
CFont font;
CFont *oldfont=NULL;
if(font.CreateFontIndirect(&logfont))
oldfont=(CFont*)printcd.SelectObject(&font);
for(int i=1;i<3;i++)
{
CString stt;
stt.Format(_T("第%d页 test print file %d"),i,i);
printcd.StartPage();
printcd.TextOut(0,100,stt);
printcd.EndPage();
} font.DeleteObject();
if(oldfont!=NULL) printcd.SelectObject(oldfont);
printcd.EndDoc();
}
printcd.DeleteDC();
}
CPrintDialog print(false);
if(print.DoModal()==IDOK)
{
CDC printcd;
printcd.Attach(print.GetPrinterDC()); DOCINFO pdoc;
pdoc.cbSize=sizeof(pdoc);
pdoc.lpszDocName="pdoc";
pdoc.lpszDatatype=NULL;
pdoc.fwType=NULL;
pdoc.lpszOutput=NULL;
if(printcd.StartDoc(&pdoc)>=0)
{
LOGFONT logfont;
memset(&logfont,0,sizeof(LOGFONT));
logfont.lfHeight=75;
CFont font;
CFont *oldfont=NULL;
if(font.CreateFontIndirect(&logfont))
oldfont=(CFont*)printcd.SelectObject(&font);
for(int i=1;i<3;i++)
{
CString stt;
stt.Format(_T("第%d页 test print file %d"),i,i);
printcd.StartPage();
printcd.TextOut(0,100,stt);
printcd.EndPage();
} font.DeleteObject();
if(oldfont!=NULL) printcd.SelectObject(oldfont);
printcd.EndDoc();
}
printcd.DeleteDC();
}
CPrintDialog print(FALSE,PD_ALLPAGES|PD_ALLPAGES|PD_NOPAGENUMS,NULL);