请问关于改变字体的有关问题
请教关于改变字体的问题
本人要弄一个打印机打印程序,程序基本已经做好,打印也没有问题,现在想改变打印出来的字体大小。望会的高手能帮我增加下代码。因为从来没有接触过打印这方面,所以代码是从网上面找的,希望高手帮我把改变字体的代码增加到代码中,谢谢
void My_Print::Print_Paper(CString buf)
{
// 增加如下代码
char szprinter[80];
char *szDevice,*szDriver,*szOutput;
HDC hdcprint; // 定义一个设备环境句柄
//定义一个打印作业
DOCINFO di={sizeof(DOCINFO),"printer",NULL};
// 得到设备字符串存入数组szprinter中
GetProfileString("windows","device","",szprinter,80);
// 将设备字符串分解
if(NULL!=(szDevice=strtok(szprinter,","))&&
NULL!=(szDriver=strtok(NULL,","))&&
NULL!=(szOutput=strtok(NULL,",")))
// 创建一个打印机设备句柄
if((hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL))!=0)
{
if(StartDoc(hdcprint,&di)>0) //开始执行一个打印作业
{
StartPage(hdcprint); //打印机走纸,开始打印
SaveDC(hdcprint); //保存打印机设备句柄
RECT Rect={1,1,10000,10000};
DrawText(hdcprint,buf,buf.GetLength(),&Rect,NULL); //打印内容
RestoreDC(hdcprint,-1); //恢复打印机设备句柄
EndPage(hdcprint); //打印机停纸,停止打印
EndDoc(hdcprint); //结束一个打印作业
}
// 用API函数DeleteDC销毁一个打印机设备句柄
DeleteDC(hdcprint);
}
else
{
AfxMessageBox("没有默认打印机,或者没有安装打印机!");
return;
}
}
------解决方案--------------------
在
DrawText(hdcprint,buf,buf.GetLength(),&Rect,NULL); //打印内容
之前加上一下内容,字体样式你以后可以根据自己要求设置
本人要弄一个打印机打印程序,程序基本已经做好,打印也没有问题,现在想改变打印出来的字体大小。望会的高手能帮我增加下代码。因为从来没有接触过打印这方面,所以代码是从网上面找的,希望高手帮我把改变字体的代码增加到代码中,谢谢
void My_Print::Print_Paper(CString buf)
{
// 增加如下代码
char szprinter[80];
char *szDevice,*szDriver,*szOutput;
HDC hdcprint; // 定义一个设备环境句柄
//定义一个打印作业
DOCINFO di={sizeof(DOCINFO),"printer",NULL};
// 得到设备字符串存入数组szprinter中
GetProfileString("windows","device","",szprinter,80);
// 将设备字符串分解
if(NULL!=(szDevice=strtok(szprinter,","))&&
NULL!=(szDriver=strtok(NULL,","))&&
NULL!=(szOutput=strtok(NULL,",")))
// 创建一个打印机设备句柄
if((hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL))!=0)
{
if(StartDoc(hdcprint,&di)>0) //开始执行一个打印作业
{
StartPage(hdcprint); //打印机走纸,开始打印
SaveDC(hdcprint); //保存打印机设备句柄
RECT Rect={1,1,10000,10000};
DrawText(hdcprint,buf,buf.GetLength(),&Rect,NULL); //打印内容
RestoreDC(hdcprint,-1); //恢复打印机设备句柄
EndPage(hdcprint); //打印机停纸,停止打印
EndDoc(hdcprint); //结束一个打印作业
}
// 用API函数DeleteDC销毁一个打印机设备句柄
DeleteDC(hdcprint);
}
else
{
AfxMessageBox("没有默认打印机,或者没有安装打印机!");
return;
}
}
------解决方案--------------------
在
DrawText(hdcprint,buf,buf.GetLength(),&Rect,NULL); //打印内容
之前加上一下内容,字体样式你以后可以根据自己要求设置
- C/C++ code
HFONT hf; hf = ::CreateFont( 56, //字体高度(旋转后的字体宽度)=56 20, //字体宽度(旋转后的字体高度)=20 2700, //字体显示角度=270° 0, //nOrientation=0 10, //字体磅数=10 FALSE, //非斜体 FALSE, //无下划线 FALSE, //无删除线 DEFAULT_CHARSET, //使用缺省字符集 OUT_DEFAULT_PRECIS, //缺省输出精度 CLIP_DEFAULT_PRECIS,//缺省裁减精度 DEFAULT_QUALITY, //nQuality=缺省值 DEFAULT_PITCH, //nPitchAndFamily=缺省值 _T("@system")); //字体名=@ ::SelectObject(hdcprint,hf);