CPrintDialog dlg(FALSE);
dlg.DoModal();call the above code in Dialog based app and SDI app will show different window,why?i want to use myself's print in sdi,but i found a example base on Dialog
and i copy the print class to sdi,it doesnt workhelpp!!!!!!!!!!!!1

解决方案 »

  1.   

    我的英文不太好,也许没有完全理解你的意思。
    如果不想使系统的打印对话框出现,就不要dlg.DoModal();
    如果想得到系统打印机的参数,可用dlg.GetDeviceModel(),然后再调用你自己的打印对话框并显示你需要的参数,供用户修改。
      注:因没有VC在边上,可能dlg.GetDeviceModel()这个函数名没有写对。
      

  2.   

    出什么错误?
    如上建议,dlg换个变量名试试
      

  3.   

    不是,我的意思是使用系统的打印对话框。
    但是在基于dialog的project中调用
    {CPrintDialog dlg(FALSE); dlg.DoModal();}
    跟在基于doc/view的sdi中调用会出现不一样的窗口,为什么?我的目的是在sdi中使用自己的打印类,我在网上下载了一个基于dialog的打印类,但是在sdi中用就出问题拉,就是上面所说的地方导致的
      

  4.   

    如果使用系统的打印对话框,你的代码应该没有问题。
    CPrintDialog dlg(FALSE); dlg.DoModal();但是其中的参数TURE和FALSE会影响对话框出现后其上显示的内容,你对这两个参数试试看吧!
      

  5.   

    打印需要文档/视图结构的支持;看看这里:
    http://www.vchelp.net/vchelp/type.asp?class_id=1&type_id=34
      

  6.   

    一样的代码放在dialog base和sdi上怎么会有不同的结果呢?
      

  7.   

    原来是release和debug的区别,faint.