10. Februar 200322 j 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 :-)
10. Februar 200322 j 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;)
10. Februar 200322 j 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.
11. Februar 200322 j 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!
11. Februar 200322 j Das Handle deines Hauptfensters kannst du in dem anderen Thread auch über AfxGetApp()->m_pMainWnd->GetSafeHwnd() kommen.
11. Februar 200322 j 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!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.