设为首页 加入收藏

TOP

3.4.3 文本和字体
2013-10-07 00:04:37 来源: 作者: 【 】 浏览:72
Tags:3.4.3 文本 字体

3.4.3  文本和字体

程序界面上不可避免的会出现和用户交互,以及向用户展示信息的文本。另外字体选择也是界面设计的必经环节。为了满足不同地区和不同用户的习惯和审美需求,文本和字体涉及的编程(www.cppentry.com)非常烦琐复杂,所以在本节主要讨论如何选入字体,输出相关文本以及创建特定的字体。

选入字体的操作和选定新画笔或画刷的过程一样。比如在表3-7中的SYSTEM_FIXED_ FONT表示等宽字体。等宽字体表示具有相同的宽度。同比例字体具有不同的间距。现在要选定等宽字体进入图形描述表,应当:

SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));

选入特定的字体后,就可以输出文本了。DrawText()和TextOut()是常用的用来输出字体的函数。其中用DrawText()函数可以格式化输出文本,TextOut()函数则没有这项功能,但TextOut()函数对文本进行精确定位比较方便。它们的函数原型如下:

int DrawText(
HDC hDC,                       //设备句柄 
LPCTSTR lpString,             //文本的指针
int nCount,                      //文本字符串的长度 
LPRECT lpRect,               //文本显示的范围矩阵
dimensions UINT uFormat         //文本的格式描述
); 
BOOL TextOut(
HDC hdc,                        //设备句柄
int nXStart,                 //文本的x坐标  
int nYStart,               //文本的y坐标
LPCTSTR lpString,       //文本字符串的指针
int cbString                   //字符串的长度
);

文本的输出可以使用系统预定义的字体,如表3-7所示的字体,程序员也可以创建特定的字体。创建字体可以使用Windows API函数CreateFont()。该函数的功能是函数功能:创建一种特殊的逻辑字体,此逻辑字体可以在后面被任何设备选择。 函数原型如下:

HFONT CreateFont(
int nHeight, int nWidth, //字体的逻辑高度好和逻辑平均宽度
int nEscapement,   //指定移位向量和设备X轴之间的一个角度,以十分之一度为单位
int nOrientation,  //指定每个字符的基线和设备X轴之间的角度
int fnWeight,   //在0到1000之间指定字体的权值
DWORD fdwltalic,   //如果设置为TRUE则指定斜体
DWORD fdwUnderline,  //如果设置为TRUE,则指定加下画线的字体
DWORD fdwStrikeOut,  //如果设置为TRUE,则strikeout指定字体
DWORD fdwCharSet,  //指定字符集
DWORD fdwOutputPrecision,//指定输出精度
DWORD fdwClipPrecision, //指定裁剪精度
DWORD fdwQuality,  //指向输出质量
DWORD fdwPitchAndFamily, //指定字体间距和字体族
LPCTSTR lpszFace   //指向指定字体的字样名的
);

由于该函数非常的复杂,同时也不常用,所以这里不做进一步地说明。程序员在使用时可以参考MSDN。

【责任编辑:杜书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.4.1 高级GDI编程 下一篇3.4.2 图形绘制

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: