zoukankan      html  css  js  c++  java
  • MFC字体(一)(控件文字字体)

    1、建立基于对话框工程:My

    2、添加控件:静态文本控件:IDC_STATIC1

    编辑框控件:建立一关联变量CEdit  m_EditControl

    3、在OnInitDialog中添加如下代码:

    CFont * m_pFont;

         m_pFont = new CFont;

         m_pFont->CreateFont(16,            // nHeight

         0,           // nWidth

         0,           // nEscapement

         0,           // nOrientation

         FW_BOLD,     // nWeight

         TRUE,        // bItalic

         FALSE,       // bUnderline

         0,           // cStrikeOut

         ANSI_CHARSET,              // nCharSet

         OUT_DEFAULT_PRECIS,        // nOutPrecision

         CLIP_DEFAULT_PRECIS,       // nClipPrecision

         DEFAULT_QUALITY,           // nQuality

         DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily

          _T("Arial"));              // lpszFac

         

         m_EditControl.SetFont(m_pFont,false);

         m_EditControl.SetWindowText("Hello!");

         GetDlgItem(IDC_STATIC1)->SetFont(m_pFont,false);

    注:

    1、

    需要注意的是,这里我们使用的是CFont指针,而不是普通的CFont局部变量,如果把程序改成下面这样:

    CFont m_pFont;

    运行后就得不到想要的效果了,因为OnInitDialog函数执行完毕,CFont m_pFont就会被清除。必须保证SetFont设置的字体对象在对话框关闭前一直有效。所以通常是使用指针或类成员的方式来保存所建立的字体对象。

    2、

    也可以定义CMyDlg类的成员变量:

    CFont *m_pFont;

    或CFont m_Font;

    3、

    若编辑框控件IDC_EDIT1未定义CEdit变量m_EditControl,可以如下调用:

    CEdit* m_EditControl = (CEdit*)GetDlgItem(IDC_EIDT1);

    m_EditControl->SetFont(m_pFont,false);

    非MFC程序,首先用CreateFont来建立一个字体句柄,然后再用SendMessage发给控件WM_SETFONT消息,将建立的字体句柄赋值过去,就可以了。

    CreateFont()函数的MSDN翻译

    函数功能:该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。

    函数原型:

    HFONT CreateFont(int nHeight,
                       int nWidth,
                     int nEscapement,
                     int nOrientation,
                     int fnWeight,
                     DWORD fdwltalic,
                     DWORD fdwUnderline,
                     DWORD fdwStrikeOut,
                     DWORD fdwCharSet,
                     DWORD fdwOutputPrecision,
                     DWORD fdwClipPrecision,
                     DWORD fdwQuality,
                     DWORD fdwPitchAndFamily,
                     LPCTSTR lpszFace);

    nHeight是字体的高度。

    nWidth是字体的宽度。

    nEscapement是字体的倾斜角。

    nOrientation是字体的倾斜角。

    fnWeight是字体的粗细。

    fdwItalic是字体是否斜体。

    fdwbUnderline是字体是否有下划线。

    fdwStrikeOut是字体是否有删除线。

    fdwCharSet是字体使用的字符集。

    fdwOutPrecision是指定如何选择合适的字体。

    fdwClipPrecision是用来确定裁剪的精度。

    fdwQuality是怎么样跟选择的字体相符合。

    fdwPitchAndFamily是间距标志和属性标志。

    lpszFacel是字体的名称。

  • 相关阅读:
    正则表达式 常用匹配 “二维点序列”“浮点数”
    QDomDocument::clear()的调用,会导致关闭程序时崩溃!!!
    QPushButton, 在代码中设置border-image无效,在qss文件中设置生效?? 请教各位网友
    PhotoShop 32位的画布,不能存储为PNG格式
    文件名称,文件路径,字符串中不能包含特殊字符 || 名称不包含特殊字符
    QPushButton异常特性---请教网友们!!!
    QSS QPushButton:hover :pressed ...为状态下变更字体颜色(color)无效,变成字体粗细(font-weight)有效???
    Qt 删掉资源qss后报错
    QPushButton 一组中凸显选中的一个,且只能选中一个。
    Exception in Spark
  • 原文地址:https://www.cnblogs.com/lxshanye/p/3088596.html
Copyright © 2011-2022 走看看