::PostMessage(...) Problem

code404

Mitglied
Hy Leute,

Momentan arbeite ich an einem Projekt was mit einem ActivX- Control arbeitet. Leider ist das gar nicht so einfach (wem sag ich das :) ), denn das ActivX braucht unbedingt ein Window und funktioniert in keinem Thread. Das Control führt ein paar längere Berechnungen aus und während es rechnet würde ich gerne die Steuerung zurück haben (um z.B. die Brechungen zu unterbrechen).
Jetzt habe ich zu vollgendten Trick gegriffen: ich habe mir ein nicht – modales Fenster generiert, creat(..) aufgerufen aber kein ShowWindow(…).
Bis dahin ist auch alles Ok, das ActiveX. Läuft und ich kann Messages hin und her schicken. So nun zum spannenden: Ich drücke in meiner Hauptanwendung „Start“ und schicke mittels
::postMessage(m_Window->m_hWnd,WM_VALIDATE_START, NULL,1);
eine Nachricht an mein unsichtbares, nichtmodales Fenster. Die Nachricht kommt an und startet die Berechnung, nur leider bekomme ich meine Steuerung über mein Hauptfenster nicht zurück.

Wenn ich das richtig verstanden habe sollte doch PostMessage( … ) die gesendete Nachricht nur in der Nachrichtenschlange des Empfängers ablegen und kehrt dann sofort wieder zurück.

Ich bin ratlos
 
Ich denke du musst, ähnlich wie bei directx in der hauptroutine, eine Abfrageschleife einbauen, damit das system ständig den aktuellen status abfragt und immer nachfragt, ob ein Tastatur- oder Mausereignis stattgefunden hat.
 
Wahrscheinlich blockiert die gestartete Berechnung deine gesamte Applikation. Dein unsichbares Hilfsfenster (mit dem ActiveX) sollte eigentlich schon in einem Thread laufen können?
Wenn du die Sourcen des ActiveX hättest, könnte man direkt darin die Berechnung in einen separaten Thread auslagern.
 
Zurück