Zurück   klamm-Forum > Virtual World > Programmierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20.09.2011, 02:57:43   #1 (permalink)
Catch-22
Benutzerbild von SvenF311

ID: 151941
Lose-Remote

Reg: 24.04.2006
Beiträge: 312
SvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz sein
Standard Qt/WinApi: Wie funktionieren Events/Messages?

Hallo,

der Titel ist leider etwas daneben, aber mir ist gerad' nichts besseres eingefallen .

Folgende Problemstellung, ich habe mir das Window-Handle vom Windows 7 Solitär geschnappt und mit SetParent() einem QWidget untergeschoben. Leider geht dabei der komplette User-Input flöten und Solitär lässt sich überhaupt nicht mehr bedienen. (Mit dem Windows XP Solitär geht das problemlos.)

Da ich leider von der WinApi nicht so wirklich einen Plan habe, zerbreche ich mir schon seit Stunden erfolglos den Kopf darüber. Aktueller Stand wäre jetzt die WM_PARENTNOTIFY, WM_SETCURSOR etc. Events in der winEvent-Methode des QWidget-Parents auszuwerten und jeweils entsprechende PostMessage-Befehle an das Solitär-Handle abzuschicken. Das erscheint mir aber saumäßig viel Arbeit für ein ungewisses Ergebnis zu sein. Zumal die WinApi Doku der MSDN nicht gerade übersichtlich ist.

Im Prinzip hänge ich ja in der WindowProc-Funktion eines WinApi Parent-Windows, da muss es doch eine einfache Möglichkeit geben, die User-Inputs (automatisch?) auf ein WinApi Child-Window umzumappen. Ideen?

MfG
Sven
SvenF311 ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 21.09.2011, 06:41:49   #2 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Moin,

die Chance, dass ich was Hilfreiches beitragen kann, is extrem gering, da ich mit Qt null Ahnung hab, aber vielleicht bringt dich folgender Denkanstoß trotzdem weiter:

Kannst du nicht die WindowProc des "geklauten" Solitär-Fensters auf deine eigene abändern? Dann hast du die Nachrichten ja und kannst sie weiterverarbeiten.
Ändern der WindowProc geht mit SetWindowLong() bzw. - wie ich dem Manual grade entnehme - neuerdings mit SetWindowLongPtr().
theHacker ist offline   Mit Zitat antworten
Alt 29.09.2011, 14:51:55   #3 (permalink)
Catch-22
Benutzerbild von SvenF311

ID: 151941
Lose-Remote

Reg: 24.04.2006
Beiträge: 312
SvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz seinSvenF311 kann auf vieles stolz sein
Standard

Zitat:
Zitat von theHacker Beitrag anzeigen
Moin,

die Chance, dass ich was Hilfreiches beitragen kann, is extrem gering, da ich mit Qt null Ahnung hab, aber vielleicht bringt dich folgender Denkanstoß trotzdem weiter:

Kannst du nicht die WindowProc des "geklauten" Solitär-Fensters auf deine eigene abändern? Dann hast du die Nachrichten ja und kannst sie weiterverarbeiten.
Ändern der WindowProc geht mit SetWindowLong() bzw. - wie ich dem Manual grade entnehme - neuerdings mit SetWindowLongPtr().
Danke für den Tipp, dass sich die WinProc ändern lässt war mir bisher entgangen.

Aber leider funktioniert das alles nicht so, wie ich mir das vorgestellt habe. Offenbar ist es nicht gut, wenn Parent und Child in unterschiedlichen Threads leben, von unterschiedlichen Prozessen ganz zu schweigen. Schnappe ich mr das Solitär-Fenster, solange es noch aufgebaut wird, klappt es gelegentlich. Warte ich bis das Spiel vollständig geladen ist, geht es nicht mehr. Hmm, da muss ich mir etwas anderes überlegen ...
SvenF311 ist offline Threadstarter   Mit Zitat antworten
Alt 30.09.2011, 16:30:04   #4 (permalink)
Erfahrener Benutzer

ID: 129556
Lose-Remote

Reg: 28.02.2010
Beiträge: 439
tobomator tobomator tobomator tobomator tobomator tobomator
Standard

Schau Dir doch mal das hier an.

http://de.wikipedia.org/wiki/Windows...ming_Interface

und dann die unten aufgeführten Weblinks.
Wenn man was programmieren will, sollte und muß man selbst mal eine Dokumentation lesen, damit an Bespielen experimentieren.
Eventuell gibts bei "google" sicher ein paar Seiten, wo man Programmbeispiele finden kann.

Für den Fall das Google nix ausspukt ?????

http://www.c-plusplus.de/forum/211159

Google spukt immer was aus
tobomator ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Spam Messages ? connor Abuse & Kontakt zum Team 3 17.03.2010 09:33:05
Events fruchteis Bug-Report 8 10.07.2009 17:15:02
[S] Internetaktionen (Events) kingpomm Lose4Werbung 0 10.12.2006 13:37:32


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17:58 Uhr.