二、Windows编程GDI—字符大小

2012-11-05 12:23:12 · 作者: · 浏览: 247

要用TextOut显示多行文字,就必须确定字体的字符大小,可以根据字符的高度来定位字符的后续行,以及根据字符的宽度来定位字符的后续列。

系统字体的字符高度和平均宽度是多少?这个问题取决于视讯显示器的图素大小。Windows需要的最小显示大小是640×480,但是许多使用者更喜欢800×600或1024×768的显示大小。另外,对于这些较大的显示尺寸,Windows允许使用者选择不同大小的系统字体。

程序可以呼叫GetSystemMetrics函数以取使用者接口上各类视觉组件大小的信息,呼叫GetTextMetrics取得字体大小。GetTextMetrics传回设备内容中目前选取的字体信息,因此它需要设备内容句柄。Windows将文字大小的不同值复制到在WINGDI.H中定义的TEXTMETRIC型态的结构中。TEXTMETRIC结构有20个字段,我们只使用前七个:

typedef struct tagTEXTMETRIC        {            LONG tmHeight ;            LONG tmAscent ;            LONG tmDescent ;            LONG tmInternalLeading ;            LONG tmExternalLeading ;            LONG tmAveCharWidth ;           LONG tmMaxCharWidth ;                   其它结构字段        }        TEXTMETRIC, * PTEXTMETRIC ;