Eigene Window Klasse
-
Ich möchte eine neue WindowKlasse erstellen und habe dazu folgende Fragen:
1. Gibt es eine Nachricht, die mich darüber informiert, dass der Mauszeiger über meinem Fenster ist ? Sowas in der Form WM_MOUSEOVER !
2. Das Window, dass ich machen möchte ist eine Art Button, der in Form eines Bitmaps dargestellt wird. Wenn ich nun mit der Maus darüber fahre soll das Bitmap ersetzt werden. Das Problem ist nun, das jeder Button durch ein anderes Bitmap dargestellt wird, ansonsten jedoch völlig identische Eigenschaften hat. Meine Frage ist nun, ob es eine Möglichkeit gibt, eine WindowKlasse zu Parametrisieren, sprich dass ich nur eine WNDCLASSEX für alle Buttons machen muss, und trotzdem jedes Window, welche diese Klasse benutzt durch ein anderes Bitmap dargestellt wird ??? Bei einem herkömmlichen Button ist dies ja nicht viel anderes, da ist auch die Form, sowie die Funktionalität bei jedem Button identisch, jedoch sind die Button unterschiedlich beschriftet !
Ich danke euch schon im voraus für eure Zeit !!!
Gruss Ishildur
-
Meinst du jetzt eine WNDCLASS oder eine C++ Klasse?
-
1. Jein. Musst du erst über eine Funktion aktivieren. TrackMouseEvent
-
2. Mach dir doch ne eigene Nachricht. Beispielsweise ISHIDURCONTROL_SETIMAGE mit der du den Dateinamen des Bildes setzten könntest
-
Wieso aktivieren?
WM_MOUSEMOVE funktioniert meines Wissens auch ohne "aktivieren".
cu
-
WM_MOUSEMOVE ja, aber nicht WM_MOUSEHOVER
-
Ja, aber er will doch ne Nachricht, die ihn informiert, wenn die Maus sich über seinem Fenster befindet, da ist WM_MOUSEMOVE doch das Einfachste, oder?
cu
-
Ja, aber die WM_MOUSEMOVE kommt ja dauernd wenn man sich auf dem Fenster bewegt. Er will doch bestimmt wissen wann man in das Fenster eintritt und bestimmt auch wenn man es wieder verlässt.
-
Original erstellt von MagiC Creator:
**Ja, aber er will doch ne Nachricht, die ihn informiert, wenn die Maus sich über seinem Fenster befindet, da ist WM_MOUSEMOVE doch das Einfachste, oder?cu**
Das ist richtig, wenn man noch ein Flag setzt. Aber dieses Flag muss man natürlich auch wieder in den anderen Zustand versetzen können. Das heißt, man braucht ein WM_MOUSELEAVE-Ereignis, und dann kann man auch gleich WM_MOUSEHOVER benutzen, und WM_MOUSEMOVE ist hinfällig.
-
genau
-
@Ishildur
Du weißt aber hoffentlich, dass Fenster immer rechteckig sind. Wenn du also ein nicht rechteckiges Bitmap hast, dann wird auch WM_MOUSEHVOER an den "Button" gesendet, wenn du möglicherweise garnicht genau über dem Bitmap bist. In einem solchen Falle helfen dann Regions.
-
Original erstellt von WebFritzi:
Du weißt aber hoffentlich, dass Fenster immer rechteckig sind.Falsch, ein Fenster kann jede beliebige Form annehmen!
-
lest euch doch mal die Beiträge komplett durch bevor ihr was neues schreibt! Das mit den Regions hat WebFritzi doch auch schon geschrieben.
Edit: keine Schimpfwörter!
[ Dieser Beitrag wurde am 17.12.2002 um 20:26 Uhr von cd9000 editiert. ]
-
mmmmhh....
Nagut, ich hab den letzten Satz nicht gelesen. Er behauptet aber trotzdem, dass Fenster immer rechteckig sind und will deshalb nicht dem Fenster eine andere Form geben, sondern mittels einer Region prüfen, ob die Maus noch in dieser ist!
So versteh ich das zumindest.[ Dieser Beitrag wurde am 17.12.2002 um 19:32 Uhr von D@niel $chumann editiert. ]