请教?
我要在程序中套打19.1*10.1厘米的普通发票,但在我的操作系统win2000中打印机中找不到自定义纸张这一块,请教,该如何做?
我要在程序中套打19.1*10.1厘米的普通发票,但在我的操作系统win2000中打印机中找不到自定义纸张这一块,请教,该如何做?
解决方案 »
- 这是个老问题了,UDP关于CString的传输?
- 如何让浮动子窗口不获得焦点
- 用BM_SETIMAGE消息在按钮中显示位图不成功,希望帮忙检查代码错误
- GetClientRect();
- SetWindowRgn函数
- 如何实现该效果:程序一开始就全屏显示,然后根据鼠标位置决定是否显示工具栏
- 怪现象,开机时串口接了不停发数据的设备,启动就不正常。谁知道原因?
- cview绘文本问题
- 关于Debug Assertion Failed
- 各位vc高手有请:如何在程序运行中动态的加入图标
- 有哪位圣诞仍孤独的在CSDN厮混的大虾能指点这个“位图数据”的问题啊???
- 寻求最快的检索办法(MSSQL),提意见也有分
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;
}
pDM->dmPaperWidth=1010;//打印纸张为19.1*10.1
运行后,出现下列错误提示,请教这是为什么?error C2018: unknown character '0xa1'
error C2018: unknown character '0xa1'
error C2018: unknown character '0xa1'
error C2018: unknown character '0xa1'
error C2018: unknown character '0xa1'
error C2018: unknown character '0xa1'
error C2018: unknown character '0xa1'
{
CPrintDialog dlgPrint(FALSE);// 得到当前系统缺省打印机设置
if(!dlgPrint.GetDefaults())
return FALSE;
LPDEVMODE pDM=dlgPrint.GetDevMode();
if(pDM==NULL) return FALSE;
//////////////////////
pDM->dmOrientation = DMORIENT_PORTRAIT;
pDM->dmPaperSize = DMPAPER_USER;
pDM->dmPaperLength=1910;
pDM->dmPaperWidth = 1010;
//////////////////////
::GlobalUnlock(pDM); // 联结打印DC,hDC是定义为HDC hDC的类成员变量
hDC = dlgPrint.CreatePrinterDC(); // DC是定义为CDC DC的类成员变量
if(!DC.Attach(hDC)) return FALSE;// 设置打印标志
return TRUE; }调试通过,为什么还是走纸
LPDEVMODE pDM=dlgPrint.GetDevMode();
的pDM,然后在下次打时重建
BOOL CSSP2Dlg::DoPreparePrintDC()
{
CPrintDialog dlgPrint(FALSE);// 得到当前系统缺省打印机设置
if(!dlgPrint.GetDefaults())
return FALSE;
LPDEVMODE pDM=dlgPrint.GetDevMode();
if(pDM==NULL) return FALSE;
//////////////////////
pDM->dmOrientation = DMORIENT_PORTRAIT;
pDM->dmPaperSize = DMPAPER_USER;
pDM->dmPaperLength=1910;
pDM->dmPaperWidth = 1010;
//////////////////////
::GlobalUnlock(pDM); // 联结打印DC,hDC是定义为HDC hDC的类成员变量
hDC = dlgPrint.CreatePrinterDC(); // DC是定义为CDC DC的类成员变量
if(!DC.Attach(hDC)) return FALSE;// 设置打印标志
return TRUE; }调试通过,为什么还是走纸?
代码中是否有错
http://support.microsoft.com/default.aspx?scid=kb;en-us;166130&Product=vcc
2、仔细检查你的代码,DEVMODE的结构用法仔细研究一下吧