014
06.07.2005, 11:27 Uhr
kox
|
Zitat von Spacelord: |
Du schreibst ja dass du das Fenster von Java aus erstellst,wie konkret sieht das denn aus? Insbesondere frage ich mich ob du überhaupt ne Nachrichtenschleife hast die die Windowsnachrichten an dein CWnd Objekt weiterleitet? Wenn du einfach nur aus dem Java Programm ne native Funktion aufrufst,die nen Window Objekt anlegt und nen Thread startet wird das wohl nichts. Ich denke du wirst wohl die zweite Variante von AfxBeginThread nutzen müssen und ne Klasse von CWinThread ableiten.Dann solltest du dein Handle auch innerhalb des UI-Threads mit Attach an dein CMyWnd Objekt binden. Sind aber alles nur Vermutungen.....
MfG Spacelord
|
Also das ist ein größeres Projekt, wie genau da nun das Fenster aufgemacht wird, kann ich dir nicht sagen.
Ich verstehe nicht so ganz, was du schreibst, also so stelle ich es mir vor: Ich hole mir den Handle des Fensters, erstelle ein Objekt einer abgeleiteten Klasse von CWnd und attache den Handle an dieses Objekt. Und dann starte ich einen Thread, der erstmal nichts macht, außer das Objekt am Leben zu erhalten. Und wenn ne Taste gedrückt wird, wird die von mir überschriebene Memberfunktion OnKeyUp meines MyCwnd-Objektes gestartet, da das aktive Fenster die OnKeyUp-Methode auslöst, und die macht dann genau das , was ich will.
Was geht dabei jetzt nicht, sorry, daß ich nochmal nachfrage, aber ich habs so nicht verstanden.
Kox
PS: Das Fensterschließen klappt, ich habe while(cwnd->GetSafeHwnd()) und wenn das Fenster geschlossen wird, rufe ich eine Funktion auf, die das CWnd-Objekt findet und vom Fenster trennt. Damit wird der Thread angehalten. Dieser Post wurde am 06.07.2005 um 11:30 Uhr von kox editiert. |