您的位置:首页 > 其它

通用对话框专题之打印和页面设置对话框

2008-02-21 20:26 260 查看
今天就来说说打印对话框吧,顺便看看打印实现吧.呵呵

void CComDialogDlg::OnBtnPrintDlg()
{
// TODO: Add your control notification handler code here
UpdateData();

CPrintDialog dlg( FALSE,//是否是标准的WINDOWS打印对话框,还是PRINT SETUP对话框
PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION,
this );

if( IDOK == dlg.DoModal() )
{
CDC dc;
DOCINFO docinfo;

dc.Attach( dlg.GetPrinterDC() ); //把打印设备环境附加到DC对象
docinfo.cbSize = sizeof(DOCINFO);
docinfo.lpszDocName = "Test";
docinfo.lpszOutput = NULL;
docinfo.lpszDatatype = NULL;
docinfo.fwType = 0;

dc.StartDoc( &docinfo ); //通知打印机驱动程序执行一新的打印任务
dc.StartPage(); //通知打印机驱动程序打印新页

CFont font;
VERIFY( font.CreatePointFont( 150, "Arial", &dc ) );//为DC创建字体
CFont * poldfont = dc.SelectObject( &font ); //保存现在的字体

dc.TextOut(0,0,m_strString); //打印文字

dc.SelectObject( poldfont ); //恢复原来的字体
font.DeleteObject();

dc.EndPage(); //通知打印机驱动程序页结束
dc.EndDoc(); //通知打印机驱动程序打印完毕

DeleteDC(dc.Detach());
}

}

顺便在贴个页面设置的使用啊,呵呵.

void CComDialogDlg::OnBtnPspDlg()
{
// TODO: Add your control notification handler code here
CPageSetupDialog dlg; //利用缺省参数构造页面设置对话框

if( IDOK == dlg.DoModal() )
{
PAGESETUPDLG psd = dlg.m_psd; //获取信息
m_strString.Format("页面大小为 %d * %d", psd.ptPaperSize.x,psd.ptPaperSize.y);
}

UpdateData(FALSE);
}

下回是什么呢?记着关注啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐