Thema: Delphi OnMouseOver realisieren

Einzelnen Beitrag anzeigen

teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#7

Re: OnMouseOver realisieren

  Alt 15. Jul 2004, 09:33
Zitat von Toxman:
Oder einfacher: OnMouseEnter bzw. OnMouseleave. Dazwischen ist die Maus auf dem Label.
Wenn er es Non-VCL haben will (so sieht es zumindest aus), dann hat er die Ereignisse doch gar nicht...

Ich hätte eine Idee, wie man es zumindest mal ausprobieren könnte. (Ich gehe davon aus, dass Du als Label ein Static-Control(Windows nicht Delphi) verwendest, berichtige mich, wenn es nicht so ist.)
Jetzt kommt es noch darauf an, ob Du das Control exlpizit erstellst (CreateWindow/Ex...) oder eine Dialog-Resource nimmst.
Im ersten Fall kriegst Du Das Handle des Static-Ctrls direkt zurück, im zweiten Fall musst Du in WM_INITDIALOG mit GetDlgItem das Handle abfragen.
Dann kannst Du mit GetWindowLong die Adresse der WindowProc des Statics speichern und mit SetWindowLong auf Deine eigene WindowProc verbiegen.
Dort reagierst Du auf WM_MOUSEMOVE. Beim ersten Empfang der Nachricht MouseCapture setzen, dann immer schauen, ob die Maus noch innerhalb Deines Statics ist, wenn nicht, Maus wieder freigeben.
Danach aber die alte WindowProc aufrufen, die Du zuerst gespeichert hattest.

Gruß, teebee
  Mit Zitat antworten Zitat