结构体预览:

typedef struct tagLOGFONTA
{LONG      lfHeight;LONG      lfWidth;LONG      lfEscapement;LONG      lfOrientation;LONG      lfWeight;BYTE      lfItalic;BYTE      lfUnderline;BYTE      lfStrikeOut;BYTE      lfCharSet;BYTE      lfOutPrecision;BYTE      lfClipPrecision;BYTE      lfQuality;BYTE      lfPitchAndFamily;CHAR      lfFaceName[LF_FACESIZE];
} LOGFONTA

每个字段的含义如下:

lfHeight:指定逻辑单位的字符或者字符元高度。
lfWidth:指定逻辑单位的字体字符的平均宽度。
lfEscapement:指定每行文本输出时相对于设备x轴的角度,其单位为1/10度。
lfOrientation:指定字符基线相对于设备x轴的角度,其单位为1/10度。此值在Win9X中和lfEscapement具有相同的值,而在WinNT下有时候可能不同。
lfWeight:指定字体的重量,Windows中字体重量表示字体的粗细程度,其范围在01000之间,正常为400,粗体为700,若此值为空,则使用默认的字体重量。
lfItalic:此值为TRUE时,字体为斜体。
lfUnderline:此值为TRUE时,字体带下划线。
lfStrikeOut:此值为TRUE时,字体带删除线。
lfCharSet:指定所使用的字符集,如GB2312_CHARSET,CHINESEBIG5_CHARSET等。
lfOutPrecision:指定输出精度,它定义了输出与所要求的字体高度、宽度、字符方向及字体类型等相接近的程度。
lfClipPrecision:指定剪辑精度,它定义了当字符的一部分超过剪辑区域时对字符的剪辑方式。
lfQuality:指定输出质量,它定义了GDI在匹配逻辑字体属性到实际的物理字体时所使用的方式。
lfPitchAndFamily:指定字体的字符间距和族。
lfFaceName:指向NULL结尾的字符串的指针,此字符串即为所使用的字体名称,其长度不能超过32个字符,如果为空,则使用系统默认的字体。

字体的使用方法:

(1)、LONG      lfWeight; 设置字体线条的宽度选项:符号                     数值                意义FW_DONTCARE             0                任意值FW_THIN                       100               非常细FW_EXTRALIGHT         200               极细FW_ULTRALIGHT         200               超细FW_LIGHT                     300                细FW_NORMAL               400               正常FW_REGULAR              400               标准FW_MEDIUM                500               中等FW_SEMIDBOLD          600               1/2粗FW_DEMIBOLD            600               3/4粗FW_BOLD                      700                粗FW_EXTRABOLD          800               特粗FW_ULTRABOLD          800               极粗FW_BLACK                    900                黑体FW_HEAVY                    900                黑体(2)、BYTE      lfCharSet;        //字符集选项:#define ANSI_CHARSET            0#define DEFAULT_CHARSET         1#define SYMBOL_CHARSET          2#define SHIFTJIS_CHARSET        128#define HANGEUL_CHARSET         129#define HANGUL_CHARSET          129#define GB2312_CHARSET          134#define CHINESEBIG5_CHARSET     136#define OEM_CHARSET             255#define JOHAB_CHARSET           130#define HEBREW_CHARSET          177#define ARABIC_CHARSET          178#define GREEK_CHARSET           161#define TURKISH_CHARSET         162#define VIETNAMESE_CHARSET      163#define THAI_CHARSET            222#define EASTEUROPE_CHARSET      238#define RUSSIAN_CHARSET         204(3)、BYTE      lfOutPrecision;    //字体的精确度选项:#define OUT_DEFAULT_PRECIS          0#define OUT_STRING_PRECIS           1#define OUT_CHARACTER_PRECIS        2#define OUT_STROKE_PRECIS           3#define OUT_TT_PRECIS               4#define OUT_DEVICE_PRECIS           5#define OUT_RASTER_PRECIS           6#define OUT_TT_ONLY_PRECIS          7#define OUT_OUTLINE_PRECIS          8#define OUT_SCREEN_OUTLINE_PRECIS   9(4)、BYTE      lfClipPrecision;    //裁剪字符的方法选项:#define CLIP_DEFAULT_PRECIS     0#define CLIP_CHARACTER_PRECIS   1#define CLIP_STROKE_PRECIS      2#define CLIP_MASK               0xf#define CLIP_LH_ANGLES          (1<<4)#define CLIP_TT_ALWAYS          (2<<4)#define CLIP_EMBEDDED           (8<<4)(5)、BYTE      lfQuality;         //字体质量选项:#define DEFAULT_QUALITY         0#define DRAFT_QUALITY           1#define PROOF_QUALITY           2#define NONANTIALIASED_QUALITY  3#define ANTIALIASED_QUALITY     4(6)、BYTE      lfPitchAndFamily;  //选择字体的间距和字体家族#define DEFAULT_PITCH           0  表示可缺省的间距#define FIXED_PITCH             1  固定的间距#define VARIABLE_PITCH          2  可变的间距(7)、WCHAR     lfFaceName[LF_FACESIZE]; //字体的名称选择:" Arial "" Bell MT "" Californian FB "" Elephant "" Forte "" Garamond "" Heallenschweiler "" Impact "" Jokerman "" Kartika "" Latha "" Mangal "" Niagara Solid "" Onyx "" Papyrus "" Roman "" Synbol "" Tunqa "" Verdana "" Wide Latin ""方正舒体""方正姚体""仿宋体""黑体""华文彩云""华文仿宋""华文琥珀""华文楷体""华文隶书""华文宋体""华文细黑""华文新魏""华文行楷""华文中宋""楷体""隶书""宋体 &新宋体""宋体-方正超大字符集""幼圆"这仅仅是字体的名称的一部分,更详细的字体名称请查自己电脑上文件夹:C:\WINDOWS\Fonts。Windows环境下的显示是GDI对象通过设备描述表进行的,而字体对象就是GDI对象之一。实际上,Windows下的不同字体就是通过选择不同的逻辑字体而输出的。如同其他的GDI对象(如画笔、调色板)一样,字体对象不但具有固有的字体,我们可以建立所需要的逻辑字体,然后选进设备描述表就可以了。下面以VC 6.0环境为例加以说明。在VC 6.0中字体对象对应的类就是CFont类。CFont类有两个成员函数CreateFont和CreatePointFontIndirect,用这两个函数都可创建逻辑字体。函数定义如下:BOOL CreateFont( int nHeight, //字体高度.>0:字体的高度值;=0:字体采//用缺省直.<0:此值的绝对值为高度.int nWidth,  //字体宽度.int nEscapement,    //文本行的倾斜度int nOrientation,     //字符基线的倾斜度int nWeight,         //字体的粗细BYTE bItalic,         //字体是否为斜体BYTE bUnderline,    //字体是否带下划线BYTE cStrikeOut,    //字体是否带删除线BYTE nCharSet,     //字体的字符集BYTE nOutPrecision, //字符的输出精度BYTE nClipPrecision, //字符裁剪的精度BYTE nQuality,      //字符的输出质量BYTE nPitchAndFamily,// 字符间距和字体族LPCTSTR lpszFacename //字体名称);该函数的各个参数和LOGFONT结构的对应的成员意义相同。BOOL CreatePointFontIndirect(Const LOGFONT *lpLogFont);用这个函数要定义一个LOGFONT结构体,用上一个函数就不用。以下为使用例程:void CMainWindow::OnPaint (){CRect rect;GetClientRect(&rect);CPaintDC dc (this)dc.SetViewportOrg(rect.Width()/2,rect.Height()/2);LONGFONT lf;::ZeroMemory(&lf,sizeof(lf);lf.lfHight = 160;lf.lfWeight = WF_BOLD;::lstrcpy(lf.lfFaceName,_T("Arial");Cfont font;Font. CreatePointFontIndirect(&lf);CFont *pOldFont = dc.SelectObject(&font);dc.Text(0,0,CString(_T("MFC HELL!")));dc.SelectObject(pOldFont);}Windows C的使用例程如下:HFONT      hFont ;LOGFONT    lf ;TCHAR szBuffer[] = _T("Windows C---SDK!");case WM_PAINT:hdc = BeginPaint (hwnd, &ps) ;lf.lfHeight         = - (int) (fabs (pt.y) / 10.0 + 0.5) ;lf.lfWidth          = 0 ;lf.lfEscapement     = 0 ;lf.lfOrientation      = 0 ;lf.lfWeight         = 5;lf.lfItalic           = 0 ;lf.lfUnderline       = 0 ;lf.lfStrikeOut       = 0 ;lf.lfCharSet        = DEFAULT_CHARSET ;lf.lfOutPrecision    = 0 ;lf.lfClipPrecision    = 0 ;lf.lfQuality         = 0 ;lf.lfPitchAndFamily  = 0 ;lstrcpy (lf.lfFaceName, _T("Arial") ;hFont = CreateFontIndirect (&lf) ;SelectObject (hdc, hFont) ;TextOut (hdc, 10, 10, szBuffer, strlen(szBuffer));DeleteObject (SelectObject (hdc, GetStockObject (SYSTEM_FONT))) ;EndPaint (hwnd, &ps) ;Break;

LOGFONT结构体的说明相关推荐

  1. Gin 框架学习笔记(02)— 参数自动绑定到结构体

    参数绑定模型可以将请求体自动绑定到结构体中,目前支持绑定的请求类型有 JSON .XML .YAML 和标准表单 form数据 foo=bar&boo=baz 等.换句话说,只要定义好结构体, ...

  2. Go 知识点(04)— 结构体字段转 json格式 tag 标签的作用

    我们知道在 Go 语言中无论是变量.常量还是函数,对于首字母大小写有不同的处理. 首字母大写,标志着该字段或者函数是能导出的,也就是可以被其它包所能访问的: 首字母小写,标志着该字段是私有的,只能在本 ...

  3. 【C#】枚举_结构体_数组

    最近看C#视频,关于这部分,先看了一遍,又照着敲了一遍,自己敲的过程发现了一些有意思的东西. 枚举:定义一个枚举类型的变量,这个变量有很多相同类型的值.比如性别Gender这个变量可以有男和女这两个值 ...

  4. C++ 结构体struct 的使用

    结构体是什么 结构体是一种有开发者定义的数据类型,以容纳许多不同的数据值 结构体的注意事项: 声明结构体的方式和声明类的方式大致相同,其区别如下: 使用关键字 struct 而不是关键字 class. ...

  5. C语言结构体篇 结构体

    在描述一个物体的属性的时候,单一的变量类型是无法完全描述完全的.所以有了灵活的结构体变量. 结构体变量从意义上来讲是不同数据类型的组合,从内存上来讲是在一个空间内进行不同的大小划分. 1.1 结构体类 ...

  6. 33. 使用fread()/fwrite()往文件中写入结构体,从文件中读出结构体

    1 //读写结构体 2 #include <stdio.h> 3 typedef struct student 4 { 5 int num; 6 char name[30]; 7 char ...

  7. Linux 准确查找结构体定义位置

    例如:查找文件操作结构体 struct file_operations, 使用转移符 "\" $ grep struct\ file_operations\ { kernel/in ...

  8. Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)

    1. 自定义类型格式 用户自定义类型使用关键字 type ,其语法格式是: type newType oldType oldType 可以是自定义类型.预声明类型.未命名类型中的任意一种. newTy ...

  9. Go 学习笔记(27)— type 关键字(类型定义、类型别名、类型查询、定义接口、定义结构体)

    1. 类型别名定义 定义类型别名的写法为: type TypeAlias = Type 类型别名规定: TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类 ...

最新文章

  1. 踏上云旅程 存储准备好了吗
  2. PL/SQL高级编程
  3. python3 windows环境 安装加密库 crypto
  4. android yuv加水印_Android Camera添加预览水印
  5. SQL Server,Could not obtain exclusive lock on database 'model'
  6. fieldset在ie8下的margin\padding bug规避
  7. 偏差-方差权衡的理解
  8. html页面加载转圈,纯CSS实现加载转圈样式
  9. linux意想不到题4
  10. java截取指定字符串中的某段字符
  11. javaweb中运用fileupload上传文件
  12. FPGA BCD计数器(一位)
  13. 使用 HMAC-SHA1 算法
  14. 计算机桌面界面组成,win10桌面添加分类框,电脑桌面归纳小窗口
  15. 魔兽同服务器物品,《魔兽世界》怀旧服:这是给你的转服物资必备清单
  16. 戴尔t40服务器自动开机,新安装的戴尔T40服务器风扇不转了是什么原因?
  17. 【学习】无刷直流电机的基本结构及工作原理
  18. 华为LTC流程再造(BPR)的来龙去脉,看一篇文就够了!管理变革专家许浩明老师
  19. 如何用Camtasia将喜欢的视频做出复古的感觉
  20. 三菱4轴控制伺服案例,三菱PLC FX3U加三菱1PG定位模 块控制4个松下伺服,有完整的注释,结构清晰明了。伺服控制程序JOG HOME 定位 全部写成了功能块FB .你可以直接拿过去用

热门文章

  1. 温度对服务器运行耗电影响,真相大白 温度对耗电影响几何
  2. 晓月_技能栏(二)显示技能和技能冷却
  3. 如何使用 Docker 快速配置数据科学开发环境?
  4. SGE 和 Slurm对比
  5. spring boot 通过浏览器下载文件
  6. Ubuntu20.04 配置D435i相机
  7. 情绪失控?好的心态你值得拥有!
  8. 微软技术在金融行业的应用
  9. 红帽企业版 Linux 7安全性指南-第 1 章 安全话题概述
  10. 介绍Linux下的 Tun/Tap