Есть ли способ изменить шрифт заголовка для приложения MFC SDI?

Я пытаюсь увеличить размер шрифта для заголовка на MainFrame. До сих пор я пробовал несколько подходов без хорошего результата. Любые предложения приветствуются.

А. Подход 1

    void CMainFrame::OnPaint()
{
CPaintDC dc(this); // device context for painting
    LOGFONT lF;
    lF.lfHeight = 10;
    lF.lfWidth = 0;
    lF.lfWeight = FW_NORMAL;
    lF.lfItalic = FALSE; //TRUE;
    lF.lfUnderline = FALSE; //TRUE;
    lF.lfStrikeOut = FALSE; //TRUE;
    lF.lfEscapement = 0;
    lF.lfOrientation = 0;
    _tcscpy_s(lF.lfFaceName, _T("Verdana"));

    CFont m_font;
    m_font.CreateFontIndirect(&lF);
    SetFont(&m_font);
       }

Это ничего не меняет.

B. Подход 2

     void CMainFrame::OnPaint()
     {
     CPaintDC dc(this); // device context for painting
    LOGFONT lF;
    lF.lfHeight = 10;
    lF.lfWidth = 0;
    lF.lfWeight = FW_NORMAL;
    lF.lfItalic = FALSE; //TRUE;
    lF.lfUnderline = FALSE; //TRUE;
    lF.lfStrikeOut = FALSE; //TRUE;
    lF.lfEscapement = 0;
    lF.lfOrientation = 0;
    _tcscpy_s(lF.lfFaceName, _T("Verdana"));

    CFont m_font;
    m_font.CreateFontIndirect(&lF);
    BOOL fRedraw = TRUE;
    SendMessageToDescendants(WM_SETFONT, (WPARAM)m_font.m_hObject);
      }

Этот подход удаляет все мои ленты меню и создает много исключений.

2 ответа

Решение

Вы можете посмотреть на это: http://msdn.microsoft.com/en-us/library/windows/desktop/bb688195(v=vs.85).aspx

Однако, как предположил Марк Рэнсом, это нелегко.

Строка заголовка фактически рисуется и обрабатывается ОС, программа не имеет над ней контроля. Существует широкий параметр ОС, чтобы изменить его. Многие приложения используют свои собственные заголовки, так что они могут поиграть вокруг его стилей.

Другие вопросы по тегам