设为首页 加入收藏

TOP

输出文字(二十三)
2010-12-30 21:10:02 来源: 作者: 【 】 浏览:24226
Tags:输出 文字
SYSMETS1的显示

SYSMETS1.C视窗讯息处理程式
 

SYSMETS1.C程式中的WndProc视窗讯息处理程式处理三个讯息:WM_CREATE、WM_PAINT和WM_DESTROY。WM_DESTROY讯息的处理方法与第三章的HELLOWIN程式相同。

WM_CREATE讯息是视窗讯息处理程式接收到的第一个讯息。在CreateWindow函式建立视窗时,Windows产生这个讯息。在处理WM_CREATE讯息时,SYSMETS1呼叫GetDC取得视窗的装置内容,并呼叫GetTextMetrics取得内定系统字体的文字大小。SYSMETS1将平均字元宽度保存在cxChar中,将字元的总高度(包括外部间距)保存在cyChar中。

SYSMETS1还将大写字母的平均宽度保存在静态变数cxCaps中。对於固定宽度的字体, cxCaps等於cxChar。对於可变宽度字体,cxCaps设定为cxChar乘以150%。对於可变宽度字体,TEXTMETRIC结构中的tmPitchAndFamily栏位的低位元为1,对於固定宽度字体,该值为0。 SYSMETS1使用这个位元从cxChar计算cxCaps:

SYSMETS1在处理WM_PAINT讯息处理期间完成所有视窗建立工作。通常,视窗讯息处理程式先呼叫BeginPaint取得装置内容代号,然後用一道for叙述对SYSMETS.H中定义的sysmetrics结构的每一行进行回圈。三列文字用三个TextOut函式显示,对於每一列,TextOut的第三个参数都设定为:

这个参数指示了字串顶端相对於显示区域顶部的图素位置。

第一条TextOut叙述在第一列显示了大写识别字。TextOut的第二个参数是0,这是说文字从显示区域的左边缘开始。文字的内容来自sysmetrics结构的szLabel栏位。我使用Windows函式lstrlen来计算字串的长度,它是TextOut需要的最後一个参数。

第二条TextOut叙述显示了对系统尺寸值的描述。这些描述存放在sysmetrics结构的szDesc栏位中。在这种情况下,TextOut的第二个参数设定为:

第一列显示的最长的

首页 上一页 20 21 22 23 24 25 26 下一页 尾页 23/44/44
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇图形基础 下一篇视窗和讯息

评论

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