首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问关于改变字体的有关问题

2012-08-25 
请教关于改变字体的问题本人要弄一个打印机打印程序,程序基本已经做好,打印也没有问题,现在想改变打印出来

请教关于改变字体的问题
本人要弄一个打印机打印程序,程序基本已经做好,打印也没有问题,现在想改变打印出来的字体大小。望会的高手能帮我增加下代码。因为从来没有接触过打印这方面,所以代码是从网上面找的,希望高手帮我把改变字体的代码增加到代码中,谢谢


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); 

热点排行