为什么我使用AddForm()这个函数总是添加不了自定义纸张?

笑傲IT 2005-06-17 04:11:49
高手帮我看看:
下面 bOk = AddForm(hPrinter, 1, (LPBYTE)&fi1); 这句的bOk总是=0,为什么???
BOOL bOk = FALSE;

LPHANDLE phPrinter=NULL;
PRINTER_DEFAULTS pd;
pd.pDatatype =NULL;
pd.DesiredAccess=PRINTER_ACCESS_USE;

FORM_INFO_1 fi1;
fi1.Flags=FORM_USER ;
fi1.pName="自定义纸张";
fi1.Size.cx=210;
fi1.Size.cy=210;
fi1.ImageableArea.left=2;
fi1.ImageableArea.top=2;
fi1.ImageableArea.right=2;
fi1.ImageableArea.bottom=2;

HANDLE hPrinter = GetPrinterHandle("Epson LQ-1600K");
if (hPrinter)
{
bOk = AddForm(hPrinter, 1, (LPBYTE)&fi1);
ClosePrinter(hPrinter);
}



//获取打印机句柄
HANDLE GetPrinterHandle(LPSTR szPrinterName)
{
PRINTER_DEFAULTS pds;
HANDLE hPrinter = NULL;
ZeroMemory(&pds, sizeof(PRINTER_DEFAULTS));
pds.DesiredAccess = PRINTER_ALL_ACCESS;
OpenPrinter(szPrinterName, &hPrinter, &pds);
return hPrinter;
}


...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑傲IT 2005-06-17
  • 打赏
  • 举报
回复
谢谢artmouse(艺术老鼠):
问题解决了,确实是单位的原因
artmouse 2005-06-17
  • 打赏
  • 举报
回复
猜测一个问题,这个单位可能是0.1毫米
你的210就是2.1厘米多
打印机打不了那么小的东西的
设置成2000 ×2000 看看

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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