-
Hi!
Ich habe eine dialogbasierte MFC Anwendung, die u.a. als TCP/IP Server fungiert und ich habe einen modalen Dialog, der mir die Verbindungen anzeigt und aus dem Hauptdialog heraus aufgerufen wird.
Mein Problem ist: Wie kann ich es realisieren, dass wenn ich in der Verbindungsübersicht bin (also im modalen Dialog) und der Server im Hauptdialog eine neue Verbindung annimmt, sofort die Übersicht im aktuellen Dialog aktuallisiert wird.
Ich hab probiert, dass ich eine Nachricht schicke, aber die scheint im dem modalen Dialog nicht anzukommen.
Need help!
MfG. Thomas
-
Sollte eigentlich so gehen, dadurch, dass du eine "richtige" Nachricht schickst, ist das sogar Thread-safe.
Zeig mal den Nachrichten-Sendecode. Der sollte so ähnlich aussehen:
Wenn du eine Membervariable auf deinen modalen Dialog hast, der so oder so ähnlich aufgebaut wird:
m_dlgVerbindungen.DoModal();
dann kannst du einfach mit
m_dlgVerbindungen.SendMessage( WM_USER + 17, x, y );
eine Nachricht an ihn senden.
-
Wenn Du einen modale Dialog öffnest, dann heißt das, das die Abarbeitung des aufrufenden Dialoges angehalten wird, d.h. dieser Dialog steht dann so lange, bis der modale Dialog zurückkehrt. Es wird also während dieser Zeit nur der modale Dialog ausgeführt. Wie und wo hast Du denn das Senden der Nachricht an den Anzeigedialog implementiert? Und hast Du einen eigenen Task für die Verarbeitung der Verbindungen?
EDIT: Zefix, Endurion! Jetzt warst Du schon wieder schneller!
Geändert von jokey2 (24.05.05 um 09:36 Uhr)
-
Supi, hat geklappt!
Ich hatte es erst mit PostMessage versucht aber das funktionierte nicht.
Das einzigste, was mich jetzt noch stört ist, dass die Variable für den 2. Dialog im ersten global definiert sein muss, da ja die Nachricht wo ganz anders ausgerufen wird, als die Stelle wo der Dialog gestartet wird. Gibt es da noch ne andere Möglichkeit?
Merke gerade, dass ich doch noch ein kleines Problem habe: Wenn der Dialog nicht offen ist, bekomme ich natürlich nen Fehler, wenn ich die Message an ihn schicken will. Wie kann ich abfragen, ob der Dialog aktiv ist, oder nicht?
MfG. ThomasGeändert von gehrti (24.05.05 um 10:19 Uhr)
-
Statt global kannst du den als Member-Variable halten (im Hauptdialog). Theoretisch reicht ja auch das HWND des modalen Dialoges, dann mit ::SendMessage( hwndDlg, .. ) arbeiten.
Wenn m_dlgVerbindungen.GetSafeHwnd() NULL zurückgibt, dann gibt es den Dialog nicht und du brauchst/kannst keine Nachricht schicken.
jokey2: Tschuldigung
-
Besten Dank nochmal!
MfG. Thomas
Ähnliche Themen
-
Zugriff auf modalen Dialog
Von jb007 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 14.05.07, 21:26 -
Strings von Dialog A nach Dialog B übertragen
Von king_of_drums im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 15.08.06, 13:47 -
Schriftart im Modalen Dialog ändern?
Von Apollo75 im Forum VisualStudio & MFCAntworten: 6Letzter Beitrag: 05.06.06, 10:35 -
Auswechseln von Bildern in einem Dialog, altes Bild wird zu Teilen noch angezeigt
Von gabifi im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 27.04.05, 20:10 -
Statusleiste für modalen Dialog als Hauptfenster
Von sdi im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 02.11.04, 13:40



Zitieren
Login





Lesezeichen