CRect bei Mouseover ändern.
-
Moin,
ich erstelle in der View mehrere Rechtecke. Jetzt möchte ich bei Mouseover, dass sich die Farbe des Rechtecks ändert. Wie mach ich das?
Grüße
-
Es gibt zwei Ansätze:
- Du zeichnest das Rechteck sofort, wenn das MouseOver kommt
- Du rufst ein Invalidate auf und prüfst dann dort nochmals ob die Maus über dem Rechteck istOder Du machst beides...
-
Aber ich muss ja erstmal wissen ob die Maus über dem Rechteck ist? Also mit if(Rectal.PtInRect(point)) kann ich das ja Feststellen, zB. bei einem Rechtsklick. Aber ich kann ja nicht bei jeder Mausbewegung prüfen ob die Maus in einem der Rechtecke ist. Das wäre doch ein wenig zu aufwendig?
MfG
-
Wenn Du es nicht prüfst, dann kannst Du Deine Aufgabe nicht lösen... oder wie stellst Du Dir das vor???
-
Aber ist das nicht ein wenig CPU lastig, wenn bei jeder verschiebung der Maus um einen Pixel, geprüft wird ob die Maus innerhalb eines Rechteckes ist? Geht das nicht anders?
-
Das packt die CPU schon, keine Angst...
Ist wirklich die beste Lösung das so zu machen.
-
Du könntest natürlich auch an den betreffenden Stellen transparente ChildWindows erzeugen und deren MausOver-Status überwachen...