紧急! 在vc中,如何在程序中设定打印机的纸张大小; vc 如何在程序中设定打印机的纸张大小;注意win98和winnt,win2000需同时支持。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CPrintDialog mypd(0); // 构造打印设置对话框对象,但不显示mypd.GetDefaults(); // 检取缺省打印设备的设备环境DEVMODE * dm = mypd.GetDevMode(); // 提取缺省打印机的DEVMODE数据dm->dmPaperSize = DMPAPER_USER; // 由用户自定义纸张。用DEVMODE中的专用串可定义各种类型的纸张,但下面两个值不需要设置dm->dmPaperLength = printhigh; // 定义纸张长度dm->dmPaperWidth = printwidth; // 定义纸张宽度CDC dc;dc.CreateDC(mypd.GetDriverName(),mypd.GetDeviceName(),mypd.GetPortName(),dm);然后使用dc就可以了 补充一句:以上的代码在98,2000,me下运行正常,在NT下没有试过。 void CRightUpView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) { DEVMODE *dp=pInfo->m_pPD->GetDevMode(); // 提取缺省打印机的DEVMODE数据//第一种 dp->dmPaperSize = DMPAPER_A4; //A4用紙 dp->dmOrientation = DMORIENT_PORTRAIT; //横向き/* //第三种 dp->dmFields |= DM_PAPERSIZE; dp->dmOrientation = DMORIENT_PORTRAIT; dp->dmPaperSize = 0; dp->dmPaperLength = 230; // 定义纸张长度 dp->dmPaperWidth = 316; // 定义纸张宽度*//* //第三种 dp->dmFields |= DM_PAPERSIZE; dp->dmOrientation = DMORIENT_PORTRAIT; dp->dmPaperSize = DMPAPER_USER; // 由用户自定义纸张。 dp->dmPaperLength = 230; // 定义纸张长度 dp->dmPaperWidth = 316; // 定义纸张宽度*/ pDC->ResetDC(dp);}在上面的代码中第一种运行正常;第二种,第三种方法运行时出错。请问为什么? VC++中如何查找文件? 可否在调试的时候,捕获并处理DBG_CONTROL_C异常? 谁有msdn 2001 oct我用200分交换。 关于变量的定义. 如何在程序中调用.exe文件. 调用SetCurSel(),但是tabCtrl的显示不变 在客户程序调用的dll中,如何得到这个客户程序的窗口句柄呀? what's New for MFC Developers? 求一个简单控件的实现 我想用程序控制鼠标的移动、单击、双击、还有键盘的击键(如何做)? 如何在对话框种嵌入对话框? 我想让第一列宽度是CListCtrl控件宽度的30%,第二列是CListCtrl控件的70%. 能不能有这样做?
mypd.GetDefaults(); // 检取缺省打印设备的设备环境
DEVMODE * dm = mypd.GetDevMode(); // 提取缺省打印机的DEVMODE数据
dm->dmPaperSize = DMPAPER_USER; // 由用户自定义纸张。用DEVMODE中的专用串可定义各种类型的纸张,但下面两个值不需要设置
dm->dmPaperLength = printhigh; // 定义纸张长度
dm->dmPaperWidth = printwidth; // 定义纸张宽度
CDC dc;
dc.CreateDC(mypd.GetDriverName(),mypd.GetDeviceName(),mypd.GetPortName(),dm);然后使用dc就可以了
{
DEVMODE *dp=pInfo->m_pPD->GetDevMode(); // 提取缺省打印机的DEVMODE数据//第一种
dp->dmPaperSize = DMPAPER_A4; //A4用紙
dp->dmOrientation = DMORIENT_PORTRAIT; //横向き/* //第三种
dp->dmFields |= DM_PAPERSIZE;
dp->dmOrientation = DMORIENT_PORTRAIT;
dp->dmPaperSize = 0;
dp->dmPaperLength = 230; // 定义纸张长度
dp->dmPaperWidth = 316; // 定义纸张宽度
*/
/* //第三种
dp->dmFields |= DM_PAPERSIZE;
dp->dmOrientation = DMORIENT_PORTRAIT;
dp->dmPaperSize = DMPAPER_USER; // 由用户自定义纸张。
dp->dmPaperLength = 230; // 定义纸张长度
dp->dmPaperWidth = 316; // 定义纸张宽度
*/
pDC->ResetDC(dp);
}
在上面的代码中第一种运行正常;第二种,第三种方法运行时出错。请问为什么?