📄 subject_16408.htm
字号:
<p>
序号:16408 发表者:高博伟 发表日期:2002-09-28 11:42:21
<br>主题:请问打印/预览中怎么根据需要的纸型及打印方向设置打印机
<br>内容:谢谢
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2002-09-28 12:31:34
<br>内容:OnPreparePrinting/OnPrint 中设置CPrintInfo对象
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:gbwstudio 回复日期:2002-09-28 13:37:56
<br>内容:我知道设置pInfo,可是我设了pInfo->m_rectDraw大小可是预览和打印的并没有使用我设置的大小,而且请问打印方向该设置怎么设置。请指教,谢谢
<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>回复者:徐景周 回复日期:2002-09-28 15:24:42
<br>内容:下面代码是DLL的一个设置打印机方向的函数<BR>int __stdcall _SetOrientation(LPSTR printerName, int orientation)<BR>{<BR> const bufSize=1000;<BR> const level=2;<BR> HANDLE hPrinter;<BR> DEVMODE *devMode;<BR> union <BR> {<BR> BYTE pPrinter[bufSize];<BR> PRINTER_INFO_2 Info;<BR> } printerInfo;<BR> DWORD needByte;<BR> if(OpenPrinter(printerName, &hPrinter, NULL) == NULL) return 1;<BR> if(orientation != DMORIENT_PORTRAIT && orientation != DMORIENT_LANDSCAPE )<BR> return 2;<BR> GetPrinter(hPrinter, level, printerInfo.pPrinter, bufSize, &needByte);<BR> if(needByte > bufSize) return 3;<BR> devMode = printerInfo.Info.pDevMode;<BR> devMode->dmFields = devMode->dmFields ¦ DM_ORIENTATION;<BR> devMode->dmOrientation = orientation;<BR> SetPrinter(hPrinter, level, printerInfo.pPrinter, NULL);<BR> ClosePrinter(hPrinter);<BR> return 0;<BR>}<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>
回复者:gbwstudio 回复日期:2002-09-28 16:14:26
<br>内容:徐景周先生:<BR>对你提供的帮助不胜感激,仔细察看代码及vc帮助,通过设置<BR>devMode的属性应该可以设置纸型和打印方向。在MFC提供的打印预览体系里是否能够采用这种思路,在OnBeginPrinting 里得到打印机设备的句柄使用GetPrinter,取得printerinfo,设置devmode然后再SetPrinter,那么我现在还需要知道打印pDC怎么获得相应的设备句柄???如果不采用这种方法,直接获得默认打印机句柄怎么获得,因为不可能知道每台打印机的printerName.<BR>还有使用上述方法设置后是不是打印机的默认设置已改变,像word之类的东西,页面设置更改,打印完毕后打印机的默认设置并没有改变,是否应该保存打印机的默认设置,打印完再恢复回去,如果不是还有没有别的诀窍?<BR>还有您能否提供有关打印的比较好的参考资源(书籍,帮助,或者网络资源)??谢谢<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>
回复者:徐景周 回复日期:2002-09-28 17:15:45
<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>
回复者:gbwstudio 回复日期:2002-09-30 10:26:44
<br>内容:现打印的纸型和方向可以实时设置,并不修改打印机的默认设置,可是预览窗口的还是采用默认的纸型,请问预览窗口类CPreviewView,怎么控制预览的尺寸,看了viewprev.cpp里面有很多的m_pPageInfo[nPage]有很多属性,互相之间以及预屏幕的映射关系弄了半天没搞清楚,<BR><BR>请您指教
<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 + -