RicH and FamouS

       Home         Glosar IT                                                                                                                                                                                                              SUBSCRIBE NOW!
        

18.04.2009

MFC Tips - SDI / MDI Framework

Cum schimbam titlul intr-un frame window?
Problema:
Intr-o aplicatie SDI/MDI, de obicei se afiseaza pe bara de titlu un string de forma "nume_document - nume_aplicatie" pentru frame-ul principal sau "nume_document" pentru un frame MDI child.

Exemple
  • Untitled - MyApp
  • Test.txt - MyApp
  • Test.txt

Daca incercam sa schimbam asta pur si simplu apeland SetWindowText din oarece loc, nu merge, pentru ca avem toate sansele ca framework-ul sa foloseasca din nou schema de mai sus si sa inlocuiasca titlul nostru schimbat "cu atata truda".

Rezolvare:
Suprascriem functia virtuala (nedocumentata) CFrameWnd::OnUpdateFrameTitle.

Cod:
// MainFrm.h

class CMainFrame : public CFrameWnd // NOTA: poate fi de asemenea
// CMDIChildWnd
// sau CMDIFrameWnd
{
// ...
virtual void OnUpdateFrameTitle(BOOL bAddToTitle);
// ...
};

// MainFrm.cpp
void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
{
SetWindowText(_T("My Cool App Title"));
}

    Blog din Moldova    FastCounter 

 
Copyright © 2008-2010 Foster1. All rights reserved.