Часто задаваемые вопросы и ответы по C/C++/Visual C++
Последнее обновление: 27.08.2003
FAQ по C/C++/Visual C++
Работа с сетью
Заголовок CMainFrame и CChildFrame
Составители: SUnteXx, Leprecon
Заголовок CMainFrame и CChildFrame
A: (Leprecon)
Оригинальная ссылка: нету

Очень многим не нравятся заголовки фреймов, которые MFC пишет по умолчанию. Иногда просто нужен заголовок, в котором не учавствовало бы название документа. Задание заголовка происходит в виртуальной функции void CFrameWnd::OnUpdateFrameTitle(BOOL bAddToTitle); Переопределив эту функцию, можно менять название фрейма по своему усмотрению. Вот как это может выглядеть для класса CChildFrame : public CMDIFrameWnd
#include <afxpriv.h>
// файл "afxpriv.h" нужен для объявления функции void AFXAPI AfxSetWindowText(HWND hWndCtrl, LPCTSTR lpszNew);

void CChildFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
{
    // сначало обновим название главного фрейма приложения
    GetMDIFrame()->OnUpdateFrameTitle(bAddToTitle);
    
    TCHAR szText[256+_MAX_PATH];
    // здесь можно задать свой заголовок фрейма.
    lstrcpy(szText, "Doc Title : ");
    
    // добавим к нашей строке название документа.
    CDocument* pDocument = GetActiveDocument();
    if (pDocument == NULL) lstrcat(szText, m_strTitle);
    else lstrcat(szText, pDocument->GetTitle());

    AfxSetWindowText(m_hWnd, szText);
}
Для заголовка главного фрейма приложения все тоже самое кроме GetMDIFrame()->OnUpdateFrameTitle(bAddToTitle). Эта строчка не нужна.

Если есть какие-то замечания, предложения или что-то еще, то пишите:
leprecon@pisem.net.

Содержание Обсудить на форуме « Предыдущая статья | Следующая статья »
Перейти к FAQ:  
FAQ составлен по материалам Форума на Исходниках.Ру.
Copyright © 2002 by Sources.ru. All rights reserved.