Überschrift bei SDI ?
-
Aloha noch einmal,
Deine Variante hatte ich ja vorher auch schon getestet, nur in der Form
((CMainFrame*)GetParentFrame())->SetWindowText("Neuer Name, den ich will");
So wird es normalerweise auch gemacht.
Ich finde den Fehler nicht.
Wenn es bei Dir geht, sollte es auch bei mir funzen.Hhhmmm.
Ich schau noch einmal...
Grüße
-
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