Probleme mit mehreren Fenstern

Dark Listener

Grünschnabel
Ich habe mit Hilfe WINAPI mehrere Fenster erstellt.(hDlg1,hDlg2 usw.)
Nun möchte ich den Text von hDlg1 ändern. Dort soll der Text angezeigt werden, der in die EditBox von hDlg2 eingegeben wurde.

Code:(Auszug)
BOOL CALLBACK Dialog1(...);
BOOL CALLBACK Dialog2(...);


BOOL CALLBACK Dialog2(...);
{
SetWindowText(hDlg1,IDC_EDIT1);
}

Ich weiß also wie man Texte einließt usw.
Aber leider wird der Text nicht angezeigt
Weiß jemand einen Rat ?
Danke
 
moin


SetWindowText wendest du glaub ich komplett falsch an.
Ich würde das eh mit SendMessage machen und dann WM_GETTEXT oder WM_SETTEXT

Und du benutzt einfach die Handles die du beim erstellen von den EditFeld(ern) bekommen hast.


mfg
umbrasaxum
 
Wo auf hDlg1 soll der Text angezeigt werden? In der Titelleiste (Caption)? Dann ist SetWindowText richtig, aber gibt es den Dialog bei der Aufrufzeit schon?

Wenn der Text auf einem Static oder Edit angezeigt werden soll, musst du dir mit GetDlgItem( hDlg1, IDC_MEIN_STATIC) das HWND holen und das dann an SetWindowText weiter geben. Oder gleich SetDlgItemText verwenden.
 
Also:
Am Anfang steht hDlg1. Durch einen Klick auf OK oder so wird hDlg2 aufgerufen.
Soweit kein Problem. Jetzt wird hDlg2 angezeigt und ich gebe etwas in IDC_EDIT1 ein und nach einem Klick auf OK zeigt hDlg1 dieses an.
Es besteht generell kein Problem mit dem Aufruf der Funkion. Ich kann nur machen,was ich will ,wenn hDlg2 geöffnet ist kann ich keine Nachrichten an hDlg1 schicken. bzw. diese werden nicht verarbeitet.
 
moin


Kannst du zwischen den beiden Fenstern hin und her schalten oder ist Dlg 1 deaktiviert während Dlg2 offen ist?


mfg
umbrasaxum
 
Aha, wie rufst du beide Dialoge auf, speziell den Zweiten?
Benutzt du CreateDialog und dann eine MessagePump? Wenn ja, zeig mal die MessagePump.
Wenn du ein DoModal für den zweiten Dialog benutzt, sollte das ganze direkt funktionieren.

Kannst du den ersten Dialog dann beliebig rumschieben oder "hängt" der, wenn der zweite offen ist?
 
moin


DoModal ist soweit ich weiß nur für MFC
Das ist kein Grund es nciht zu benutzen...

Du erstellst also zwei modale-Dialoge, und kannst zwischen ihnen hin und her schalten, egal welcher Dialog zu erst offen war?!


mfg
umbrasaxum
 
Zurück