Titelleiste eines ChildFrame im Programm ändern
-
Hallo,
ich tüftle schon eine ganze Zeit herum, komme aber nicht recht weiter.
Daher meine Frage:
Ich habe eine MDI-Anwendung mit diversen Child-Fenstern.
Die ChildViews sind CFormView's als Eingabemasken mit
Eingabefeldern und Button.Ich möchte per Buttonklick auf einem CFormView den Titel des
ChildFrame ändern.Vielen Dank für einen hilfreichen Tip.
-
SetWindowText() dürfte die richtige Methode sein.
-
SetWindowText funktioniert nur eingeschränkt bei MDI-Fenstern und der MFC.
Nach dem Öffnen eines neuen Fensters ist die Umbenennung wieder weg.Normalerweise bestimmt das CDocument den Titel der MDI-Fenster. Der Titel des CDocument kann über
GetDocument()->SetTitle( _T("Hello World") );aus dem CFormView geändert werden.
-
Oder das entsprechende MDIChildFrame wird nicht mit dem Stil FWS_ADDTOTITLE erzeugt. Dann kann man auch SetWindowtext verwenden!
-
Hallo tvdog,
deine Aussage:
SetWindowText funktioniert nur eingeschränkt bei MDI-Fenstern und der MFC.
Nach dem Öffnen eines neuen Fensters ist die Umbenennung wieder weg.Normalerweise bestimmt das CDocument den Titel der MDI-Fenster. Der Titel des CDocument kann über: GetDocument()->SetTitle( _T("Hello World") );
aus dem CFormView geändert werden.kann ich bestätigen, nur daß sich dabei der Fenstertitel des MainFrame ändert und nicht der des ChildFrame, welches meine Absicht ist.

SetWindowText zeigt in jedem Fall keinerlei Reaktion.
Hat noch einer eine Idee ?
-
Oder das entsprechende MDIChildFrame wird mit dem Stil FWS_ADDTOTITLE erzeugt. Dann kann man auch SetWindowtext verwenden!
Das Flag FWS_ADDTOTITLE muß vom CMDIChildWnd entfernt werden, dann funktioniert SetWindowText().
Hab's mal ausprobiert und es funktioniert.
void CFormTitleTest2View::OnButton1() { GetParentFrame()->ModifyStyle( FWS_ADDTOTITLE, 0, FWS_ADDTOTITLE ); GetParentFrame()->SetWindowText( _T("Hello World") ); }
-
Hallo tvdog,
habe es ebenfalls ausprobiert.
Funktioniert.
Perfekt. Danke für Deinen Tip.

Jetzt geht's endlich wieder weiter !
-
Das ganze kann man auch wie dokumentiert in PreCreateWindow machen!