Überschrift bei SDI ?



  • Also, ich hab es bei mir etwas kompliziert gelöst, hier einfach mal der komplette Kram:

    In MainFrame.cpp

    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    	//{{AFX_MSG_MAP(CMainFrame)
    //...
    	//}}AFX_MSG_MAP
    	ON_MESSAGE(WM_UPDATE_TEXTE, OnUpdateTexte)
    END_MESSAGE_MAP()
    
    // ------------------------------------------------------------------------------------------------
    // 
    // Legt den Statuszeilentext und den Fenstertitel fest.
    // 
    // ------------------------------------------------------------------------------------------------
    LRESULT CMainFrame::OnUpdateTexte(WPARAM wParam, LPARAM pParam)
    {
    //	CBasisDoc* pDoc = (CBasisDoc*)(wParam);
    //	ASSERT(pDoc);
    //	if (pDoc)
    //	{
    		// Statuszeile
    //		m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(IDS_STATUS_VIEWTEXT), pDoc->GetStatuszeilentext());
    
    		// Titelzeile
    //		CAd3App* pApp = dynamic_cast<CAd3App*>(AfxGetApp());
    //		ASSERT(pApp);
    //		CString strTitelTeil1 = pApp->GetBenutzerteilTitelzeile();
    //		CString strTitelTeil2 = pDoc->GetTitelzeilentext();
    		SetWindowText(strTitelTeil1 + strTitelTeil2);
    //	}
    
    	return 0;
    }
    

    ... das auskommentierte steht da blos, damit du die komplette Funktion im Zusammenhang siehst. 🙂

    Und das wird dann von jedem View aufgerufen, weil es in der Basisklasse aller Views so steht:

    void CBasisView::OnInitialUpdate() 
    {
    	CFormView::OnInitialUpdate();
    
    	AfxGetMainWnd()->SendMessage(WM_UPDATE_TEXTE, (WPARAM)GetDocument());
    }
    


  • Aloha,

    lustige Variante.
    Ich habe sie jetzt noch nicht getestet, weil ich denke, daß das gleiche passiert, wie sonst auch.

    "unbenannt -- Programm"

    Du rufst halt nur ne selbstgebastelte Command auf.

    Oder stehe ich auf dem Schlauch.
    Ist doch die gleiche Stelle ??? 😕

    Grüße

    BOA



  • Ist die gleiche Stelle, deswegen hatte ich dir die ja gesagt. 🙂



  • ich versteh was du da treibst, aber wo definierst du die message-id
    "WM_UPDATE_TEXTE"??
    hab grad bei mir geschaut -- finds irdenwie net 🙄



  • Aloha Gehirnmann!,

    Das ist eine Eigenkreation von estardu_de !!!
    Du kannst Deine eigenen Messages schreiben, wenn Du das möchtest.
    Gibt es bestimmt einen Fachterminus dafür, kenne ihn gerade nicht.

    Grüße

    BOA



  • ist mir schon klar 🙂

    aber ich muss die doch irgendwo "deklarieren" damit der die kennt. mach ich das in der resoucre.h ? (nur so ne dumme idee 🙄 )



  • Mach das in einer h Datei, die von allen includiert wird, die diese Nachricht nutzen. Bei mir ist das die BasisView.h

    So sieht es aus:

    #define WM_UPDATE_TEXTE (WM_USER+1)
    


  • Aloha,

    in der

    "stdafx.h"

    sollte es auch funzen.
    Die is auch immer dabei...

    Unkonventionell, sollte aber gehen.
    Diskussionsgrundlage ist geschaffen... 😉

    Grüße

    BOA



  • hehe. das ist cool

    aber dabei fällt mir was anderes mit WM_XX sachen ein:
    wie bekomme ich denn die Liste der Messages einer Klasse wie es beim alten VC6.0 wizard der fall war?
    Beispiel:
    hab: nen view.
    will: ne WM_SIZE message.
    da gabs früher ne "add function" unter "Message Map".
    oder wie bekomme ich die message ID's usw. jetzt ??



  • Keine Ahnung, gerade weil solche Fragen immer wieder auftauchen nutze ich noch VC6. :p

    Aber irgendwann muss ich umstellen. 😮



  • ich mach mal nen neuen thread damit auf.. vielleicht gibts ja nen klugen kopf


Anmelden zum Antworten