WndProc
-
Klar das wäre generell auch möglich.
Das Problem ist halt dann nur das du das Fenster innerhalb der Klasse erstellen musst...
Da gibts wahrscheinlich undendlich viele Möglichkeiten...
Man könnte eine globale Variable definieren.
Den this-Zeiger über eine Nachricht reinschicken (so würde ich es machen)
Du kannst den Zeiger theoretisch in eine Datei oder die Zwischenablage schreiben und innerhalb der WndProc als Reaktion auf WM_CREATE oder eine andere Nachricht wieder auslesen...Doch was dann wirklich sinnvoll ist wird wohl sehr schnell klar!
Ich würds mit ner Nachricht machen aber das bleibt natürlich jedem selbst überlassen!
-
Sehr sinnfrei das Ganze. Funktioniert doch eh nur für ein einziges Fenster wie du es gemacht hast.
-
Ja sag ich ja das das meiste Blödsinn ist.
Aber wieso soll das nur für ein Fenster funktionieren ?
-
Alle GUI-Frameworks benutzen die Moeglichkeit, die schon erwaehnt wurde, naemlich bei CreateWindow() den Parameter "lpParam" zu setzen und in WM_CREATE wieder abzufragen, und anschliessend z.B. mit SetWindowLongPtr( ... GWL_USERDATA ... ) zu speichern und bei anderen Messages mit GetWindowLongPtr( ... GWL_USERDATA ... ) wieder auszulesen.
-
Ocin schrieb:
Ja sag ich ja das das meiste Blödsinn ist.
Aber wieso soll das nur für ein Fenster funktionieren ?
static TheClass* pInstance;
-
Power Off schrieb:
Alle GUI-Frameworks benutzen die Moeglichkeit, die schon erwaehnt wurde, naemlich bei CreateWindow() den Parameter "lpParam" zu setzen und in WM_CREATE wieder abzufragen, und anschliessend z.B. mit SetWindowLongPtr( ... GWL_USERDATA ... ) zu speichern und bei anderen Messages mit GetWindowLongPtr( ... GWL_USERDATA ... ) wieder auszulesen.
Alle außer die die es anders machen.
-
lpParam schrieb:
Alle außer die die es anders machen.
Genau!

(haette vielleicht "so gut wie alle" schreiben sollen!
)
-
Aso wegen dem static.
Gut aber er hat ja gesagt das er eine WndProc in einer Klasse haben will.
Wenn ich dann jeder Instanz der Klasse eine eigene WndProc geben, dann geht das problemlos. Erst wenn man dann mehreren Instanzen eine gemeinsame WndProc gibt, dann wirds wieder nichtmehr funktionieren das stimmt.Ich weis ja net ob er das überhaupt braucht (mehrere die eine WndProc gemeinsam haben), aber wenn das so ist müsste man es wieder anders lösen.
Dann stellt sich wieder die Frage ob jede Klasse/WndProc ihr eigenes Fenster hat oder welche gemeinsam nutzt....Ich finde wir sollten aufhören uns hier irgendwelche Dinge auszudenken. Der soll mal genau sagen was er braucht dann bekommt er die beste Lösung!

-
falsch!
-
°° schrieb:
falsch!
ok

-
Nagut, ich werd mal alles probieren.
Aber erstmal Danke, falls es auch nicht funktioniert.