Titelleiste dynamisch "beschriften"
-
"this-> zeug"
this zeigt immer auf den aktuellen dialog
wenn du
class bla
{
this == *bla
}class blu
{
this == *blu
}usw
um den titel zu aendern einfach in der klasse welches das fenster verwaltet das setwindowtext aufrufen, (nicht in dem parent fenster welches das fenster mit DoModal erstellt)
und auch erst aufrufen sobald das fenster fertig erstellt wurde {zb bei OnInitDialog}
-
*APPLAUS*
Es funktioniert.
Hattest vollkommen Recht, funktioniert erst wenn es in der IniDialog drinsteht. Logisch, da dann ja erst die Instanz der Klasse wirklich da ist.
Danke dafür!!! Wär ich allein nie und nimmer drauf gekomm..(oder hätt den Hammer rausgeholt...
....
Ganz großes Kino...
Vergesst alle teuren Bücher...n gutes Forum bringt echt mehr...;o)
Nu muss ich aber zum Bus flitzen.....

Man liest sich.... :xmas1:
-
Hallo zusammen,
ich bin der Neue und möchte diesen Thread gleich mal aufgreifen. Und zwar versuche ich die Titelleiste eines Dialogs in einer WM5 Applikation zu ändern, aber ohne Erfolg.
Der Dialog wird mit DoModal() erzeugt und in der Methode OnInitDialog() wird mit SetWindowText(L"Super Dialog") der Titel geändert. Aber es tut sich nichts.
Wie gesagt dass ganze läuft auf Windows Mobile 5. Kann jemand helfen?
Grüße
-
Hy...
Also ich muss einleitend sagen , dass ich nicht weiß, ob das WM5 1:1 mit der MFC programmierbar ist.
Aber bei meinem Programm ging es auch mit dem Befehl, den Du (ich darf doch Du sagen?!..;o) ), genutzt hast NICHT.
Probier mal mit
this->SetWindowText(m_Titel);
Die OnInitMethode im Dialog ist schon ok...
da steht das bei mir auch drin...Viel Erfolg....

-
DasAlteLeid schrieb:
Das hab ich meinem Projekt aber nich weil ich ein zwei mal kopiert habe....
Da scheintdas so zu sein, dass die IDE die Klassen und Methoden-Info nicht mehr richtig verarbeitet. Aber das is ja nicht so wichtig.Schau dazu mal in die FAQ.

-
this->SetWindowText geht leider auch nicht. Ist aber eh das gleiche wie ohne this.
Mir ist etwas komisches aufgefallen. Ich erstelle einen Dialog und ändere den Titel. Der bleibt allerdings gleich und ändert sich nicht. Wenn ich aus diesem Dialog einen weitere Dialog öffne und diesen wieder schließe, hat sich auf einmal der Titel vom ursprünglichen Dialog geändert. Es sieht so aus, als würde da eine Art refresh oder sowas fehlen. Hat jemand eine Idee?
-
Invalidate();

-
estartu schrieb:
Invalidate();

und direkt danach ein UpdateWindow();
ist ein Erfahrungswert, da Invalidate() ja eigentlich 'nur' löscht.
Windows: Sicher ist Sicher
grüssle

-
Invalidate();
UpdateWindow();funktionieren leider auch nicht. Habe im MSDN gelesen, dass hier nur innere Bereich eines Dialoges betroffen nicht. Der Rahmen und somit auch der Titel werde nicht aktualisiert. Hat sonst jemand eine Idee?
-
aendert sich die schrift wenn du das fenster selber verschiebst oder es in der groesser veraenderst ? {kannst ja zum test kurzzeitig auf resizable stellen}
-
Im PreCreateWindow( gibts das im WM5??? ) dann noch:
cs.style &= ~FWS_ADDTOTITLE;oder heisst das da anders?
grüssle

-
Mr Evil schrieb:
aendert sich die schrift wenn du das fenster selber verschiebst oder es in der groesser veraenderst ? {kannst ja zum test kurzzeitig auf resizable stellen}
Leider gibt es in der Applikation nur Modale Fullscreen Dialoge. Sogar das Hauptfenster ist von dieser Sorte. Und so auf die Schnelle habe ich das jetzt nicht hinbekommen mit dem verschieben oder größe ändern.
Smitty schrieb:
Im PreCreateWindow( gibts das im WM5??? ) dann noch:
cs.style &= ~FWS_ADDTOTITLE;oder heisst das da anders?
Das scheint mir ein interessanter Ansatz zu sein. PreCreateWindow gibt es. Aber wie funktioniert das mit FWS_ADDTOTITLE? Muss ich da nicht irgendwo den neuen Text übergeben?