Zurück tutorials.de > Programming > C/C++ > VisualStudio & MFC

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


Einladung zum C++ für Einsteiger-Workshop
  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
Themen-Optionen Ansicht
Alt 24.05.05, 00:07   #1 (permalink)
Mitglied Silber
 
Registriert seit: Apr 2005
Beiträge: 50
Renommee-Modifikator: 10
gehrti hat eine blütenweiße Weste

Nachricht von einem Dialog zu modalen, geöffneten 2. Dialog schicken

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
  gehrti ist offline  
 
Alt 24.05.05, 09:28   #2 (permalink)
Mitglied Diamant
 
Benutzerbild von Endurion  
 
Registriert seit: Apr 2004
Beiträge: 2.062
Renommee-Modifikator: 20
Endurion sorgt für eine eindrucksvolle Atmosphäre

Re: Nachricht von einem Dialog zu modalen, geöffneten 2. Dialog schicken

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.
  Endurion ist offline  
 
Alt 24.05.05, 09:33   #3 (permalink)
Mitglied Smaragd
 
Benutzerbild von jokey2  
 
Registriert seit: Nov 2004
Beiträge: 1.230
Renommee-Modifikator: 15
jokey2 sorgt für eine eindrucksvolle Atmosphäre

Re: Nachricht von einem Dialog zu modalen, geöffneten 2. Dialog schicken

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).
  jokey2 ist offline  
 
Alt 24.05.05, 10:16   #4 (permalink)
Mitglied Silber
 
Registriert seit: Apr 2005
Beiträge: 50
Renommee-Modifikator: 10
gehrti hat eine blütenweiße Weste

Re: Nachricht von einem Dialog zu modalen, geöffneten 2. Dialog schicken

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. Thomas

Geändert von gehrti (24.05.05 um 10:19 Uhr).
  gehrti ist offline  
 
Alt 24.05.05, 11:56   #5 (permalink)
Mitglied Diamant
 
Benutzerbild von Endurion  
 
Registriert seit: Apr 2004
Beiträge: 2.062
Renommee-Modifikator: 20
Endurion sorgt für eine eindrucksvolle Atmosphäre

Re: Nachricht von einem Dialog zu modalen, geöffneten 2. Dialog schicken

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
  Endurion ist offline  
 
Alt 24.05.05, 12:49   #6 (permalink)
Mitglied Silber
 
Registriert seit: Apr 2005
Beiträge: 50
Renommee-Modifikator: 10
gehrti hat eine blütenweiße Weste

Re: Nachricht von einem Dialog zu modalen, geöffneten 2. Dialog schicken

Besten Dank nochmal!

MfG. Thomas
  gehrti ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
Zugriff auf modalen Dialog jb007 Swing, Java2D/3D, SWT, JFace 1 14.05.07 21:26
Strings von Dialog A nach Dialog B übertragen king_of_drums Visual Basic 6.0 3 15.08.06 13:47
Schriftart im Modalen Dialog ändern? Apollo75 VisualStudio & MFC 6 05.06.06 10:35
Auswechseln von Bildern in einem Dialog, altes Bild wird zu Teilen noch angezeigt gabifi VisualStudio & MFC 2 27.04.05 20:10
Statusleiste für modalen Dialog als Hauptfenster sdi VisualStudio & MFC 1 02.11.04 13:40
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 132
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 260
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 147
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 100
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 189
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 79,68%
149 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 20,32%
38 Stimmen
Stimmen gesamt: 187
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,20218 Sekunden mit 26 queries