[MFC] Cum schimbam titlul intr-un frame?

Despre MFC, ATL si alte biblioteci C++ de la Microsoft (forum moderat)
Post Reply
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

[MFC] Cum schimbam titlul intr-un frame?

Post by Ovidiu Cucu » 16 Jul 2007, 16:17

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 pur si simplu apeland SetWindowText din oarece loc, nu merge, pentru ca framework-ul foloseste din nou schema de mai sus si inlocuieste titlul nostru schimbat "cu atata truda".

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

Exemplu

Code: Select all

// MainFrm.h 

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

Code: Select all

// MainFrm.cpp 

void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle) 
{ 
   SetWindowText(_T("Asta-i pohta ce-am pohtit!")); 
}

<< Back to MFC index



Post Reply