MFC-HFONT字体

GDI中默认的字体,是系统等宽字体,比如对话框标题一般就采用这个字体。 

LOGFONT

LOGFONT是Windows内部字体的逻辑结构,主要用于设置字体格式,其定义如下:

复制代码
    typedef struct tagLOGFONT {
        LONG  lfHeight;  //字体高度
        LONG  lfWidth;  //字体宽度
        LONG  lfEscapement;  //字体显示的角度
        LONG  lfOrientation; //字体的角度
        LONG  lfWeight; //字体的磅数(字体的深浅程度).取值范围0--1000,400为正常字体,700为黑体 0位默认值
        BYTE  lfItalic; //斜体字体
        BYTE  lfUnderline; //带下划线字体
        BYTE  lfStrikeOut; //带删除线字体
        BYTE  lfCharSet; //所需字符集
        BYTE  lfOutPrecision; //输出的精度
        BYTE  lfClipPrecision;//裁剪精度
        BYTE  lfQuality;//逻辑字体和输出设备的实际字体间的间距
        BYTE  lfPitchAndFamily; //字体间距和字体集
        TCHAR lfFaceName[LF_FACESIZE]; //字体名称
    } LOGFONT, * PLOGFONT;
复制代码

 

 

HFONT

复制代码
    
    HDC hdc = ::GetDC(m_hWnd);
    LOGFONT lf = { 0 };
    lf.lfWeight = 16; //平均宽度
    lf.lfHeight = 40;//字体高度
    lf.lfCharSet = GB2312_CHARSET;//字符集
        //如GB2312_CHARSET,CHINESEBIG5_CHARSET等
    //GB2312是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要
    lstrcpy(lf.lfFaceName, _T("宋体"));
    //指向NULL结尾的字符串的指针,其长度不能超过32个字符,如果为空,则使用系统默认的字体

    
    HFONT hfont = ::CreateFontIndirect(&lf);//创建逻辑字体
    /*
    创建的字体具有LOGFONT对象确定的特性
    参数:CONST LOGFONT *lplf
    返回值:如果函数调用成功,返回值是逻辑字体的句柄;如果函数调用失败,返回值是NULL

    */

    HFONT holdfont = (HFONT)SelectObject(hdc, hfont);
    /*
    SelectObject返回的类型是HGDIOBJ,需要强转
    */

    RECT rect = { 50,50,400,400 };
    DrawText(hdc, _T("GDI测试"), -1, &rect, DT_LEFT);

    SelectObject(hdc, holdfont);
    DeleteObject(hfont);
复制代码

 

 

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(249)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
历史上的今天:
2022-04-16 浩辰CAD-矩形
2022-04-16 浩辰CAD-点
2020-04-16 物理实验室-目录
2020-04-16 音频频率发生器接线
2019-04-16 python-文件及文件夹操作
2019-04-16 Arduino传感器学习目录
2019-04-16 焦点控制

目录导航

点击右上角即可分享
微信分享提示