用VC实现竖写汉字的方法(六)

2013-09-26 19:37:00 · 作者: · 浏览: 433

 

  FALSE,              //非斜体

  FALSE,              //无下划线

  FALSE,      //无删除线

  DEFAULT_CHARSET,    //使用缺省字符集

  OUT_DEFAULT_PRECIS, //缺省输出精度

  CLIP_DEFAULT_PRECIS,//缺省裁减精度

  DEFAULT_QUALITY,    //nQuality=缺省值

  DEFAULT_PITCH,      //nPitchAndFamily=缺省值

  "@system");         //字体名=@system

  CFont *pOldFont=dc.SelectObject(&myFont);//选入设备描述表

  CRect rtClient;

  GetClientRect(rtClient);   //获取客户区尺寸、位置信息

  //在客户区适当位置输出文字

  dc.TextOut(rtClient.Width()/2+30,rtClient.Height()/8,

  "无边落木萧萧下");

  dc.SelectObject(pOldFont); //将myFont从设备环境中分离

  myFont.DeleteObject();     //删除myFont对象

  /////////// 利用LOGFONT结构实现竖写汉字//////////////

  LOGFONT lf;                     //定义字体结构

  lf.lfWeight=10;                 //字体磅数=10

  lf.lfHeight=56;     //字体高度(旋转后的字体宽度)=56

  lf.lfWidth=20;                  //字体宽度(旋转后的字体高度)=20

  lf.lfUnderline=FALSE;           //无下划线

  lf.lfStrikeOut=FALSE;           //无删除线

  lf.lfItalic=FALSE;              //非斜体

  lf.lfEscapement=2700;           //字体显示角度=270°

  lf.lfCharSet=DEFAULT_CHARSET;   //使用缺省字符集

  strcpy(lf.lfFaceName,"@system"); //字体名=@system

  CFont myLogFont;                   //定义字体对象

  myLogFont.CreateFontIndirect(&lf); //创建逻辑字体

  pOldFont=dc.SelectObject(&myLogFont);//选入设备描述表

  //在客户区适当位置输出文字

  dc.TextOut(rtClient.Width()/2-30,rtClient.Height()/8,

  "不尽长江滚滚来");

  dc.SelectObject(pOldFont); //将myFont从设备环境中分离

  myLogFont.DeleteObject();  //删除myLogFont对象

  }

  4.编译连接,运行。

  以上实例在Windows98下,以VC++6.0编译通过。