Brauche eine Messagequeue (WindowHandle) hab jedoch keins?



  • Hallo zusammen,

    ich habe folgendes Problem. Ich habe eine Headerdatei und eine Lib für eine Hardwaredevice erhalten, das ich gekauft habe. Nun gibt es eine Init-Methode die das Device initialisiert. Als Parameter wird dort ein Fensterhandle erwartet (hwnd). Das Device sendet dann an diesen Handle Nachrichten ("Events").

    Kann ich mir irgendwie eine eigene MessageQueue erzeugen, an die das Device dann die Messages schickt? Ich kann - aufgrund meiner Architektur - nicht das Handle der Hauptanwendung weitergeben. Wäre froh wenn mir da jemand weiter helfen könnte :). Für Fragen, Anregungen bin ich auch gerne zu haben.

    Danke



  • wie waere es ein CWnd fenster zu erstellen und an position CRect(0, 0, 0, 0) anzeigen zu lassen {Create} dann kannst du in diesem unsichtbaren fenster die messages abfangen ?!

    nur ein message handler einpasten bringt soweit ich mich erinnere nichts, da kein CWnd initialisiert wurde



  • Ich frage das Device in einem eigenen Thread ab. Dazu habe ich ein CWinThread genommen (steht ja in der MSDN, dass es für MFC zwingend ist dies zu nehmen). Dann erzeuge ich den Thread mit AfxBeginThread. In der MSDN habe ich folgendes gelesen:

    "There are two general types of threads that CWinThread supports: worker threads and user-interface threads. Worker threads have no message pump: for example, a thread that performs background calculations in a spreadsheet application. User-interface threads have a message pump and process messages received from the system. CWinApp and classes derived from it are examples of user-interface threads. Other user-interface threads can also be derived directly from CWinThread."

    Ich erzeuge zur Zeit einen Worker Thread. Wenn ich nun einen user-interface Thread erzeuge (was ich noch nie getan habe), dann müsste es klappen oder. Der Thread hat ja dann einen HWND den ich weitergeben kann oder? Brauch ich dann ein wirkliches "Fenster" oder reicht nicht die existenz einer MessageQueue aus?



  • ich glaub du musst des gui fenster trotzdem erstellen - nur halt unsichtbar - kann mich aber irren, hab bisher maximal workerthreads gemacht


Anmelden zum Antworten