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

今天就来说说打印对话框吧,顺便看看打印实现吧.呵呵

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);
}

下回是什么呢?记着关注啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值