第5章文本和字体﹝5﹞.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章文本和字体﹝5﹞

第5章 文本与字体 ; 使用定义好的与设备无关的字体集, Windows就能维护它的设备无关性,提供“所见即所得”的好处,即屏幕所见与设备输出的文本是一样的。;;(1) 定义字体句柄变量: HFONT hF; //hF为字体的句柄;;;;获取字体信息;系统定义的TEXTMETRICS的结构如下: typedef struct tagTEXTMETRIC { //tm LONG tmHeight; //字符高度 LONG tmAscent; //字符基线以上高度 LONG tmDescent; //字符基线以下高度 LONG tmInternalLeading; //tmHeight制订的字符高度顶部的控件 LONG tmExternalLeading; //行与行之间的间隔 LONG tmAveCharWidth; //平均字符宽度 LONG tmMaxCharWidth; //最大字符宽度 LONG tmWeight; //字符的粗细度 LONG tmOverhang; //合成字体间附加的宽度 LONG tmDigitizedAspectX; //为输出设备设计的X轴尺寸 LONG tmDigitizedAspectY; //为输出设备设计的Y轴尺寸 BCHAR tmFirstChar; //字体中第一个字符值 BCHAR tmLastChar; //字体中最后一个字符值 BCHAR tmDefaultChar; //代替不在字体中字符的字符 BCHAR tmBreakChar; //作为分割符的字符 BYTE tmItalic; //非0则表示字体为斜体 BYTE tmUnderlined; //非0则表示字体有下划线 BYTE tmStruckOut; //非0则表示字符为删除字体 BYTE tmPitchAndFamily; //字体间距和字体族 BYTE tmCharSet; //字符集 }TEXTMETRIC;格式化文本;(2)确定换行时文本坐标;文本输出;;//主函数 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG Message; if(!InitWindowsClass(hInstance)) return FALSE; if(!InitWindows(hInstance,nCmdShow))return FALSE; while(GetMessage(Message,0,0,0))//消息循环 { TranslateMessage(Message); DispatchMessage(Message); } return Message.wParam; };//消息处理函数 long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) { static long nXChar,nCaps,nYChar; HDC hDC; //定义指向设备上下文的句柄 short x; TEXTMETRIC tm; short LnCount=6; PAINTSTRUCT PtStr; //定义指向包含绘图信息的结构体变量 static char *textbuf[]= { This is the First line, This is the second line, This is the third line, This is the fourth line, This is the fifth line, This is the sixth line };;switch(iMessage) //处理消息 {case WM_CREATE: //处理窗口创建消息 hDC=GetDC(hWnd) ; //获取当前设备表句柄 GetTextMetrics(hDC,tm); //获取字体信息 nXChar=tm.tmAveCharWidth; //获取字符宽度 nYChar=tm.tmHeight+tm.tmExternalLeading; nCaps=(tm.tmPitchAndFamily1?3:2)*nXChar/2; ReleaseDC(hWnd,hDC); //释放当前设备句柄 retu

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档