第25周-window程序设计(基础篇)-第4章-系统字体及格式化文字
2016-09-21 11:30
288 查看
1、系统字体:
2、格式化文字:
/* 呼叫GetTextMetrics取得字体大小: 系统字体的大小取决于Windows所执行的视讯显示器的分辨率 */ typedef struct tagTEXTMETRIC { LONG tmHeight; //tmAscent与tmDescent的和,表示基准在线下字符的最大纵向高度。 LONG tmAscent; //内部的间距 LONG tmDescent; LONG tmInternalLeading; //通常被设置为0 LONG tmExternalLeading; //字体设计者建议加在横向字符之间的空间大小 LONG tmAveCharWidth; //乘以150%可计算大写字母的平均宽度 LONG tmMaxCharWidth; 其它结构字段 } TEXTMETRIC,*PTEXTMETRIC; //在内定设备内容下,映像方式是MM_TEXT,因此值的大小是以图素为单位。 TEXTMETRIC tm; //定义结构变量 hdc = GetDC(hwnd); GetTextMetrics(hdc,&tm); ReleaseDC(hwnd,hdc);
2、格式化文字:
/*在窗口消息处理程序内定义两个变量来保存平均字符宽度(cxChar)和总的字符高度(cyChar):*/ static int cxChar,cyChar; //若在函数外定义则不需要static 变量名前缀c代表count,指图素数。 /*WM_CREATE程序代码*/ case WM_CREATE: hdc = GetDC(hwnd); GetTextMetric(hdc,&tm); cxChar = tm.tmAveCharWidth; cxChar = tm.tmHeight+tm.ExternalLeading; RealeaseDC(hwnd,hdc); return 0; /*wsprintf与TextOut的典型组合*/ int iLength; TCHAR szBuffer[40]; 其它行程序 iLength = wsprintf(szBuffer,TEXT("The sum of %i and %i"),iA,iB,iA+iB); TextOut(hdc,x,y,szBuffer,iLength); 同功能代码 TextOut(hdc,x,y,szBuffer, wsprintf(szBuffer,TEXT("The sum of %i and %i"),iA,iB,iA+iB));//直接将参数代入
相关文章推荐
- 第25周-window程序设计(基础篇)-第4章-滚动条新功能
- 第25周-window程序设计(基础篇)-第4章-GDI图形设备接口
- 第25周-window程序设计(基础篇)-第4章-绘制和更新
- 第25周-window程序设计(基础篇)-第4章-滚动条
- 第25周-window程序设计(基础篇)-第4章-SYSMETS.C窗口消息处理程序
- 第25周-window程序设计(基础篇)-第4章-SYSMETS3.C
- 第25周-window程序设计(基础篇)-第4章-SYSMETS.H
- 第25周-window程序设计(基础篇)-第3章-注册窗口类别1
- 第25周-window程序设计(基础篇)-第3章-显示窗口ShowWindow
- 第25周-window程序设计(基础篇)-第2章-实例ScreenSize.c
- 第25周-window程序设计(基础篇)-第3章-实例HelloWin.c
- 第25周-window程序设计(基础篇)-第3章-CreateWindows的呼叫
- 第25周-window程序设计(基础篇)-第3章-窗口消息处理程序WndProc
- 第25周-window程序设计(基础篇)-第3章-注册窗口类别2
- 第25周-window程序设计(基础篇)-第2章-windows为何不用printf
- 第26周-window程序设计(基础篇)-第5章(图形基础)-取得设备内容的多方法
- ARM应用系统开发详解 ----第4章 ARM程序设计基础
- win10系统文字很模糊怎么办?win10浏览网页字体不清晰的原因及解决方法
- 第26周-window程序设计(基础篇)-第5章(图形基础)-SINEWAVE.C正弦波
- C语言Windows程序设计->第七天->TextOut与系统字体