Titelzeile einer MFC-Anwendung ändern
-
Hi,
ich möchte den Text der Titelzeile des Hauptfensters ändern. CMainFrame::SetWindowText() bringt keine Ergebnisse. Mich stört in der Titelzeile das "Unbekannt.***", wie bekomme ich das weg?
Danke,
don_basto.
-
Wenn die TItelzeile nur aus dem App-Name bestehen solle musst Du "CMainFrame::PreCreateWindow" überschreiben und dort den Style "FWS_ADDTOTITLE" wegnehmen...
Alternativ kannst Du noch "CFrameWnd::OnUpdateFrameTitle" überladen...
-
So etwas suchte ich auch.
Eine weitere Frage ist, wie kann man den Title im nach hinein verändern?
-
AfxGetMainWnd()->SetWindowText("Neu");
-
Siehe: Total control over Main Window title with MDI http://www.experts-exchange.com/Programming/Programming_Languages/MFC/Q_21448042.html
-
@Jochen:
Der letzte Beitrag hat endlich gefunzt
, alles andere brachte keine Erfolge.Danke,

don_basto.<edit> Kurz mal eine mögliche Lösung (copy&paste des Links :D), da ich diese Lösung noch nicht im Forum gefunden habe:
// WindowProc hinzufügen LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_GETTEXT) { CString strTitle("Weg mit Unbenannt.***!"); size_t nSize = min(wParam, (unsigned int) strTitle.GetLength()); strncpy((char*) lParam, strTitle.GetString(), nSize); return nSize; } return CFrameWnd::WindowProc(message, wParam, lParam); }</edit>
-
in InitInstance
m_pMainWnd->SetWindowText("mein neu titel");
-
don_basto schrieb:
mögliche Lösung
Ich würde das eher eine blutigen Hack nennen.
-
@MFK:
Wie würdest du das dann lösen?
Das Problem ist, dass SetWindowText() und Konsorten versagen. Ich vermute, dass das Framework die Titelzeile irgendwo in seinen Tiefen steuert, so dass im Titel steht: "<Dokument> - <Anwendung>". Aber durchschaut habe ich es bis jetzt nicht und dieser 'Hack' hat geholfen!Grüsse,
don_basto.<edit>
@dokdok:
He, das funktioniert auch!
Und ist viel einfacher. Und kein 'Hack'.
. Danke.
</edit>
-
dokdok schrieb:
in InitInstance
m_pMainWnd->SetWindowText("mein neu titel");Kann ich nur zustimmen. Funktioniert gut. Das lästige Unbenannt in der Titelzeile des Hauptfensters kann damit geändert werden.
-
hiermit verschwindet das "Unbenannt" komplett:in PreCreateWindow einfügen
cs.style &= ~FWS_ADDTOTITLE;