【问题标题】:How To make a static text bold and underline in MFC如何在 MFC 中使静态文本变为粗体和下划线
【发布时间】:2015-01-25 04:21:21
【问题描述】:

我有一个消息窗口来显示错误消息。在该消息中,一些文本应该是粗体和下划线。我正在使用静态文本。我正在使用以下代码。

m_font.CreateFont(10,0,0,0,FW_BOLD,0,0,0,0,0,0,0,0,"Arial");
GetDlgfItem(Id of the lable)->SendMessage(WM_SETFONT,WPARAM(HFONT)),0);

使用它我可以使它变得粗体。但我无法更改文本的粗体。以及如何在标签中的文字下划线。

提前致谢。

【问题讨论】:

    标签: mfc mfc-feature-pack


    【解决方案1】:

    试试这个

    CWnd * pwnd = GetDlgItem(LABEL_ID);
    CFont * pfont = pwnd->GetFont();
    LOGFONT lf; pfont->GetLogFont(&lf);
    lf.lfItalic = TRUE;         //To Make Text Italic
    lf.lfWeight = 500;          //To Make BOLD, Use FW_SEMIBOLD,FW_BOLD,FW_EXTRABOLD,FW_BLACK
    lf.lfUnderline = TRUE;      //Underline Text
    pfont->CreateFontIndirect(&lf);
    pwnd->SetFont(pfont);
    

    或者你可以使用

    CFont *m_font;
    m_font->CreateFont(10,0,0,0,FW_BOLD,0 , 1, 0, 0, 0, 0, 0, 0,_T("Arial"));
                                           ^^ 
                                      //(for underline)
    GetDlgItem(IDC_MOUSEPOS)->SetFont(m_font);
    

    http://msdn.microsoft.com/en-us/library/2ek64h34.aspx

    【讨论】:

    • 行 pfont->CreateFontIndirect(&lf);抛出异常,因此您必须创建新变量。 CFont *new_font = 新 CFont; new_font->CreateFontIndirect(&lf);新字体->设置字体(新字体);并且不要忘记在使用后将其删除。删除新字体;
    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 2018-09-08
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多