⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_37587.htm

📁 vc
💻 HTM
字号:
<p>
序号:37587 发表者:金枪鱼 发表日期:2003-04-26 00:07:45
<br>主题:打印份数的获取问题?
<br>内容:无视图打印状况<BR><BR><BR>CPrintDialog printDlg(FALSE,PD_ALLPAGES|PD_HIDEPRINTTOFILE);<BR><BR>if(IDCANCEL==printDlg.DoModal())<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .......<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>//想取出打印对话框中设置的打印的分数<BR>&nbsp;&nbsp; int PrintQuantity=printDlg.GetCopies();<BR>&nbsp;&nbsp; 或者<BR>&nbsp;&nbsp; int PrintQuantity=printDlg.m_pd.nCopies;<BR><BR>为什么始终得到的打印份数为1?无论你在打印对话框中设置多少份。<BR>请高手指点怎样得到这个打印对话框设置的打印份数。谢谢
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:擎天柱 回复日期:2003-04-26 08:41:26
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nMinPage&nbsp;&nbsp;&nbsp;&nbsp;= 1 ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nMaxPage&nbsp;&nbsp;&nbsp;&nbsp;= 0xffff ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nFromPage = 1 ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nToPage&nbsp;&nbsp;&nbsp;&nbsp;= 1 ;<BR>把以下这两个程序赋值后就可以了。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nMinPage&nbsp;&nbsp;&nbsp;&nbsp;= 1 ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nMaxPage&nbsp;&nbsp;&nbsp;&nbsp;= 0xffff ;<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:yxx 回复日期:2003-04-26 10:58:13
<br>内容:要加PD_USEDEVMODECOPIES属性<BR>CPrintDialog dlg(FALSE,PD_ALLPAGES|PD_HIDEPRINTTOFILE|PD_USEDEVMODECOPIES);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:金枪鱼 回复日期:2003-04-26 18:45:45
<br>内容:谢谢楼上的指点<BR>测试表明:<BR>&nbsp;&nbsp;1)设置PD_USEDEVMODECOPIES后,通过GetCopies()函数可以正常得到设置的打印份数。但使用成员数据m_pd.nCopies得不到正确的结果。<BR>&nbsp;&nbsp;2)单独修改printDlg.m_pd.nMinPage&nbsp;&nbsp;&nbsp;&nbsp;= 1 ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nMaxPage&nbsp;&nbsp;&nbsp;&nbsp;= 0xffff ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nFromPage = 1 ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;printDlg.m_pd.nToPage=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;这些语句是否不起作用,GetCopies()或者m_pd.nCopies都没有得到正确的结果。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;最后采用的方法,设置打印都会开的PD_USEDEVMODECOPIES属性,然后通过GetCopies得到设置的打印份数(环境WinXP+VC6)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:金枪鱼 回复日期:2003-04-30 22:55:29
<br>内容:原来打印时控制多页打印有两种类型:<BR>1)程序控制型;2)打印机驱动程序控制型;<BR><BR>在程序控制型中,多页打印的实现要由代码来完成,尽管你设置了printDlg.m_pd.nCopies,或者使用了打印对话框设置打印份数,缺省的打印始终是一份,要多份打印要由你的程序代码根据设置的nCopies,循环StartPage()和EndPage()函数,才能打印出多份。<BR><BR>在打印机驱动程序控制型中,多页打印由打印机对话框设置的份数决定,不用循环操作代码,由打印机自动完成。但注意打印机对话框打印份数的初始化值始终为1,对话框返回后可以使用GetCopis()函数得到打印的份数。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -