当前位置:C++技术网 > 资讯 > MFC打印程序实现打印纸的设置

MFC打印程序实现打印纸的设置

更新时间:2016-01-28 22:33:36浏览次数:1+次

windows系统中,提供了许多规格的打印纸,但在实际的应用中,这些纸的规格不满足需求,因此。在设计程序时,需要自定义纸张的大小。

新建对话框工程,对话框界面设置成如下所示:

添加两个编辑框,接受纸的宽度与高度的数据,一个按钮,更名为打印,并建立消息响应:

并为两个编辑框关联变量:


DDX_Text(pDX, IDC_EDIT1, m_Length);
	DDX_Text(pDX, IDC_EDIT2, m_Width);


在对话框的实现文件中:


void CSetPaperDlg::OnButprint() 
{
	UpdateData(TRUE);
	DWORD dwflags=PD_ALLPAGES | PD_NOPAGENUMS | PD_USEDEVMODECOPIES
 		| PD_SELECTION | PD_HIDEPRINTTOFILE | PD_RETURNDEFAULT;	//打印对话框风格
	CPrintDialog dlg(FALSE,dwflags,NULL);					//构造打印都会看
	if (dlg.DoModal() == IDOK)							//显示打印对话框
	{
		//定义打印纸的大小
		LPDEVMODE dev      = dlg.GetDevMode();
		dev->dmPaperSize   = DMPAPER_USER;
		dev->dmPaperLength = m_Length * 10;				//打印纸长度
		dev->dmPaperWidth  = m_Width * 10;				//打印纸宽度
		dev->dmFields = DM_PAPERSIZE | DM_PAPERWIDTH 
			| DM_PAPERLENGTH | dev->dmFields;
		CDC dc;
		dc.Attach(dlg.GetPrinterDC());						//获得打印机设备上下文
		dc.ResetDC(dev);		
		CFont TextFont;
		TextFont.CreatePointFont(150,"宋体",&dc);			//设置字体
		dc.StartDoc("print");								//开始打印
		dc.SelectObject(&TextFont);						//选入字体
		dc.TextOut(200,200,"山无棱,江水为竭,冬雷震震,夏雨雪,天地合,乃敢与君绝!");
		dc.EndDoc();									//结束打印
		TextFont.DeleteObject();
		dc.DeleteDC();
	}
}
头文件中:



int		m_Length;
	int		m_Width;
由于图片上传不了,就不上传图片了。