字体的字符大小

来源:互联网 发布:淘宝直通车怎么开通 编辑:程序博客网 时间:2024/05/15 13:10
字符大小要用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 ;        这些字段值的单位取决于选定的设备内容映像方式。在内定设备内容下,映像方式是MM_TEXT,因此值的大小是以图素为单位。要使用GetTextMetrics函数,需要先定义一个结构变量(通常称为tm):TEXTMETRIC tm ;        在需要确定文字大小时,先取得设备内容句柄,再呼叫GetTextMetrics:hdc = GetDC (hwnd) ;GetTextMetrics (hdc, &tm) ;ReleaseDC (hwnd, hdc) ;此后,您就可以查看文字尺寸结构中的值,并有可能保存其中的一些以备将来使用。

0 0
原创粉丝点击