Есть ли способ изменить шрифт заголовка для приложения 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
Однако, как предположил Марк Рэнсом, это нелегко.
Строка заголовка фактически рисуется и обрабатывается ОС, программа не имеет над ней контроля. Существует широкий параметр ОС, чтобы изменить его. Многие приложения используют свои собственные заголовки, так что они могут поиграть вокруг его стилей.