Chinaunix首页 | 论坛 | 博客
  • 博客访问: 743435
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

2008-10-15 16:40:06

     一般情况下,程序开发人员都希望自己的程序美观大方,为了达到这一个要求,想尽办法美化自己的程序,另一方面,文字是程序界面上不可或缺的一种传递信息的途径,如果在界面上适当的地方添加并显示各种特殊效果的文字,将不失为一个好的选择,可以达到事半功倍的效果,本例针对Visual 中编程实现文字的特殊显示效果这一问题,通过编写一个简单的小程序,介绍如何实现这一目标。读者朋友可以稍加改动,将该方法应用到自己的程序中去。


图一 字符串的环绕显示


图二、3D文字效果

  一、实现方法

  在讲述文字的各种处理效果之前,我们首先来介绍Visual 中的MFC提供的用来创建字体的CFont类。对于程序开发人员来说,可以创建的字体有两种:库存字体(该字体直接使用字体的索引选入设备上下文就可以了,例如:CDC::CreateStockObject(int nIndex ))和自定义字体。

  CFONT类从CgdiObject派生而来,该类的对象可以通过Createfont()、CreateFontIndirect()等函数创建自定义的字体。两个函数原型分别如下:
 CFont::CreateFontIndirect(const LOGFONT* lpLogFont );
CFont::CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename )。

    其中第二个函数的参数和第一个函数中的LOGFONT类型的参数的的分量有一一对应的关系。LOGFONT结构主要定义了字体的属性,其定义可通过MSDN帮助查到:

 typedef struct tagLOGFONT {
 LONG lfHeight; //字符字体高度 ;
 LONG lfWidth; //字符平均宽度 ;
 LONG lfEscapement; //文本行逆时针旋转角度;
 LONG lfOrientation; //字体角度 ;
 LONG lfWeight; //字体粗细程度 ;
 BYTE lfItalic; //倾斜 ;
 BYTE lfUnderline; //下划线 ;
 BYTE lfStrikeOut; //删除线 ;
 ……
} LOGFONT;

[1]     

【责编:huangchunmei】

--------------------next---------------------

阅读(546) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~