Leana Geschrieben 10. Februar 2003 Autor Geschrieben 10. Februar 2003 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 :-) Zitieren
Guybrush Threepwood Geschrieben 10. Februar 2003 Geschrieben 10. Februar 2003 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;) Zitieren
Klotzkopp Geschrieben 10. Februar 2003 Geschrieben 10. Februar 2003 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. Zitieren
Leana Geschrieben 11. Februar 2003 Autor Geschrieben 11. Februar 2003 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! Zitieren
Klotzkopp Geschrieben 11. Februar 2003 Geschrieben 11. Februar 2003 Das Handle deines Hauptfensters kannst du in dem anderen Thread auch über AfxGetApp()->m_pMainWnd->GetSafeHwnd() kommen. Zitieren
Leana Geschrieben 11. Februar 2003 Autor Geschrieben 11. Februar 2003 also nochmal danke für eure hilfe! ich hab das jetzt doch so gemacht wie ihr gemeint habt ! ganz normal mit postmessage! hab aber wieder mal was dazu gelernt! also ncohmals vielen dank! Zitieren
Empfohlene Beiträge
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.