如何改变打印机纸张大小?(求VC代码)

mom38 2004-12-26 11:57:13
联系QQ:36672232
我已经有VB代码了
希望能有VC的代码
...全文
131 点赞 收藏 4
写回复
4 条回复
猞猁狲 2004年12月27日
帮顶!
回复 点赞
hushuangyan74 2004年12月27日
好像可以在类CPrintDialog类里面设置!
回复 点赞
Kudeet 2004年12月27日
参考:
BOOL CMyDialog::DoPreparePrintDC() //准备打印场景
{
  #define FONTSIZE 14
  //获取打印机的设备属性
  CPrintDialog dlgPrint(FALSE);
  //得到当前系统缺省打印机设置
  if(!dlgprint.GetDefau1ts())return FALSE;
  LPDEVMODE pDM=dlgPrint.GetDevMode();
  if (pDM==NULL)return FALSE;
  //调整打印方向
  //pDM->dm0rientation=DMORIENT_LANDSCAPE(横向)‖
  DMORIENT_PORTRAIT(纵向);
  //调整纸张大小
  //制式纸张:pDM->dmPaperSize=DMPAPER_A3等;
  //或自定义大小:单位:1/10毫米
  //pDM->dmPaperSize=DMPAPER_USER;
  //pDM->dmPaperLength=纸张高度;
  //pDM->dmPaperWidth=纸张宽度;
  //解锁由CPrintDialog::GetDevMode()封锁的内存
  ::GlobalUn1ock(pDM);
  //联结打印DC,m_hDC是定义为HDC m_hDC的类成员变量
  m_hDC=dlgPrint.CreatePrinterDC();
  //m_DC是定义为CDC m_DC的类成员变量
  if (!m_DC.Attach(m_hDC))return FALSE;
  //设置打印标志
  m_DC.m_bPrinting=TRUE;
  //根据打印机分辨率建立打印字体
  //得到每英寸点数
  short cxInch=m_DC.GetDeviceCaps(LOGPIXELSX);
  short cyInch=m_DC.GetDeviceCaps(LOGPIXELSY);
  //建立打印字体,m_fontPrint是定义为CFont m_fontPrint的类成员变量
  if(!m_fontPrint.CreateFont(MulDiv(FONTSIZE,-cyInch,
72),
  0,0,0,FW_NORMAL,0,0,0,
  GB2312_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHA
RACTER_PRECIS,
  DEFAULT_QUALITY,DEFAULT_PITCH|FF—DONTCARE,HFONTNAME)
  return FALSE;
  return TRUE;
}
回复 点赞
EnochShen 2004年12月27日
http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=511
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告