Zum Inhalt springen

PostThreadMessage


Leana

Empfohlene Beiträge

also ich schick doch mitlerweile an mein fenster!

deswegen geb ich ja auch die thread id von meinem fenster mit in postthreadmessage!

das mit deinem domodal hab ich leider nicht verstanden!?

warum soll das nicht gehen?

beim debuggen postet er aber fleißig

oder gibt es da keine queue oder wie?

ich dumm, bitte hilfe :-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

oder gibt es da keine queue oder wie?

Also ich hab dazu nochwas entdeckt

The function fails if the specified thread does not have a message queue.

The system creates a thread's message queue when the thread makes its first call

to one of the Win32 USER or GDI functions. For more information, see the Remarks section.

Da ja dadurch die PostThreadMessage() Funktion scheitern würde, scheint es daran

nicht zuliegen.

Warum das mit einem Modalen Thread nicht geht, weiß ich leider auch nicht,

vielleicht kannst du uns das ja noch schnell erklären Klotzkopp :)

Aber dann probiers doch einfach mal mit PostMessage oder SendMessage,

mehr wie nicht funktionieren kanns ja nicht;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by Leana

also ich schick doch mitlerweile an mein fenster!

deswegen geb ich ja auch die thread id von meinem fenster mit in postthreadmessage!

das mit deinem domodal hab ich leider nicht verstanden!?

warum soll das nicht gehen?

beim debuggen postet er aber fleißig

oder gibt es da keine queue oder wie?

Zeigst du die Instanz von CCErweiterungSnapShotDlg, die du erstellst, mit DoModal an? Oder ist das der Hauptdialog deiner Anwendung?

Dann gibt es schon eine Queue. Aber die macht intern DispatchMessage. DispatchMessage funktioniert aber mit Thread-Nachrichten nicht, weil sie keinem Fenster zugeordnet sind. Deshalb werden deine Nachrichten zwar versendet und kommen auch an, können aber nicht verarbeitet werden.

Aus der MSDN:

Messages sent by PostThreadMessage are not associated with a window. Messages that are not associated with a window cannot be dispatched by the DispatchMessage function. Therefore, if the recipient thread is in a modal loop (as used by MessageBox or DialogBox), the messages will be lost. To intercept thread messages while in a modal loop, use a thread-specific hook.

Bevor du mit Hooks anfängst, solltest du besser PostMessage verwenden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok jetzt versteh ich langsam so nach und nach!

ja der dialog ist mein hauptfenster!

nun ja letzte lösung wäre evtl. so!

ich arbeite ja mit AfxBeginThread() dadurch entsteht ja ein pointer auf CWinThread!

wenn ich dem meinem fenster übergebe, kann ich darüber evtl. irgendwie auf seine message queue zugreifen!

mal schauen, muss mich mal schlau machen!

und danke euch allen, dass ihr mir das alles etwas näher gebracht habt!

thx a lot!:):D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...