Regeln für ComboBox-Fokus

02/09/2007 - 19:29 von Benedikt Bösel | Report spam
Hallo.
Auch wenn es in VB6 nicht mehr geàndert wird, wollte ich diese Frage in
meinem "Heimatforum" posten:
Wenn man eine ComboBox aufklappt (und aufgeklappt làsst) und dann über
andere Controls fàhrt, nehmen die keine MouseOver-Status mehr an (sich
àndern Ihre Farbe nicht und geben halt auch kein MouseMove wieder). Ich
habe das immer total gehasst. Dann gab es mit dem FrameWork 1.0 eine
kurze Zeit in VB8, in der das anders gehandhabt wurde. Dann mit dem
Framework 2.0 war wieder alles beim Alten. Kann mir jemand sagen, welche
Regeln hier anschlagen? Herfried hat sich bei einem Bug-Report mal
direkt auf die Regeln von WM_UPDATEUISTATE bezogen. Es scheint, wenn man
denen mit Regeln kommt, dann hören sie einem eher zu.
Kann sich jemand auf meine Seite schlagen und hat einen Vorschlag? Das
stört mich seit ich VB6 benutze immer und immer wieder. Nicht, weil es
ein Schönheitsfehler ist (oder auch nicht, je nachdem, welche Regeln man
sich ausdenkt, wofür das gut ist), sondern weil ich das MouseMove immer
wieder brauche (für ein wirklich ernsthaftes Programm, keine Spielerei).
Danke.
Benedikt Bösel
 

Lesen sie die antworten

#1 Thorsten Doerfler
03/09/2007 - 00:53 | Warnen spam
Benedikt Bösel schrieb:
Wenn man eine ComboBox aufklappt (und aufgeklappt làsst) und dann über
andere Controls fàhrt, nehmen die keine MouseOver-Status mehr an (sich
àndern Ihre Farbe nicht und geben halt auch kein MouseMove wieder). Ich
habe das immer total gehasst. Dann gab es mit dem FrameWork 1.0 eine
kurze Zeit in VB8, in der das anders gehandhabt wurde. Dann mit dem
Framework 2.0 war wieder alles beim Alten. Kann mir jemand sagen, welche
Regeln hier anschlagen?



Regeln? Der Mauscapture liegt bei der aufgeklappten ComboBox Liste.
Diese empfàngt alleine alle WM_MOUSMOVE Nachrichten. Andere Controls
bekommen keine WM_MOUSEMOVE Nachrichten mehr. Làsst sich auch mit
Spy++ und fremden Anwendungen beobachten. Nimm z.B. den
Datei-Eigenschaften Dialog vom Explorer und schau Dir die Nachrichten
Verarbeitung mit Spy++ an. Sobald eine ComboBox aufgeklappt ist,
kommen keine Nachrichten mehr beim Fenster/Dialog oder anderen
Steuerelementen an. Spontan sehe ich da jedenfalls keine
Einschrànkung, die von der verwendeten Umgebung (VB6/.NET Framework)
vorgenommen wird, sondern das ist eine Einschrànkung des Systems
selber. Irrtümer vorbehalten.

Herfried hat sich bei einem Bug-Report mal
direkt auf die Regeln von WM_UPDATEUISTATE bezogen.



Hat aber jetzt mit Deinem Problem nichts zu tun, oder? Würde ich
jedenfalls auf einer ganz anderen Baustelle einordnen.

sondern weil ich das MouseMove immer
wieder brauche (für ein wirklich ernsthaftes Programm, keine Spielerei).



Mit einem anwendungsweiten Message-Hook solltest Du an alle
Nachrichten kommen, unabhàngig von dem aktuellen Auswahlzustand von
Menüs (die sind hier auch betroffen) und ComboBox Listen.

Thorsten Dörfler

Ähnliche fragen