关于打印纸张大小设置问题, 求熟悉这块的大仙们解答下

barrassed 2011-11-30 05:35:14
现使用一款相片打印机, 它能支持4*6和6*8等几种尺寸. 现想通过程序来控制打印出相片尺寸. 现遇到的问题是打印6*8的相片, 通过设置DEVMODE中dmPaperSize(或dmPaperWidth, dmPaperHeight), 并重设打印DC, 这些设置全部返回成功. 但把DEVMODE参与设置到DC后, 通过调用GetDeviceCaps()获得相纸大小, 却发现其值并不是之前所设置的, 而是打印机当前默认相纸4*6的尺寸. 这里原因是什么?

请各位帮忙, 谢谢.

代码大致流程:
第一步: 创建打印机设备DC CreateDC();
第二步: 设置相片纸张大小 通过 GlobalLock()获得打印机DEVMODE结构, 修改参数后调用ResetDC()设置打印
第三步: 打印
...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
战在春秋 2011-12-04
  • 打赏
  • 举报
回复
Use the dmPaperLength member. Include this flag only if dmPaperSize is set to DMPAPER_USER
dmPaperHeight 参数要求也是一样。
一条晚起的虫 2011-12-03
  • 打赏
  • 举报
回复
// DEVMODE中的dmPaperSize,设为DMPAPER_USER,并设置dmPaperWidth, dmPaperHeight
// dmFields中,置位DM_PAPERSIZE,DM_PAPERLENGTH,DM_PAPERWIDTH

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧