Заголовок CMainFrame и CChildFrame

Очень многим не нравятся заголовки фреймов, которые 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). Эта строчка не нужна.
 
« Предыдущая статья   Следующая статья »