TrackMouseEvent

Wohl das A & O in der Windows-Programmierung

Moderatoren: crack, Krüsty, Marwin

TrackMouseEvent

Beitragvon Rainer » Montag 18. Februar 2008, 16:59

Hallo,

ich möchte über einem Ownerdraw-Button reagieren, wenn sich der Mauscursor über dem Button befindet. Das ist so mit WM_DRAWITEM nicht lösbar, also habe ich's jetzt mit TrackMouseEvent probiert.
Die Struktur TRACKMOUSEEVENT habe ich global declariert, bei WM_CREATE habe ich nach der Erzeugung des Buttons die Struktur gefüllt

(global)
tme TRACKMOUSEEVENT <>

(WndProc, WM_CREATE)
mov tme.cbSize, sizeof tme
mov tme.dwFlags, TME_HOVER or TME_LEAVE
mov tme.hwndTrack, eax ;eax = Handle des Btns
mov tme.dwHoverTime, HOVER_DEFAULT
invoke TrackMouseEvent, addr tme

und warte nun in der WndProc, leider vergeblich, auf WM_MOUSEHOVER bzw. WM_MOUSELEAVE, wenn ich mit der Maus über dem Button bin. Weiß jemand, was ich da falsch mache?

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: TrackMouseEvent

Beitragvon crack » Dienstag 9. Dezember 2008, 01:36

Axo, ich glaube Du musst WM_MOUSEOVER bzw. WM_MOUSELEAVE in der MessageLoop abfangen und nicht in der WndProc ...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: TrackMouseEvent

Beitragvon Rainer » Donnerstag 16. Juli 2009, 18:26

Hallo crack,

danke, mit Subclassing ging's dann auch..

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg


Zurück zu Windows-API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron