vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: MouseHover und MouseLeave für gesamte Anwendung? 
Autor: ModeratorDaveS (Moderator)
Datum: 22.11.09 10:02

Also, das sollte in PreFilterMessage() sein, nicht WndProc(). Gehirnatrophie mit zunehmendem Alter nennt man das, glaube ich. Hier ist ein Beispiel.
Imports System.Runtime.InteropServices
 
Public Class Form1
    Implements IMessageFilter
 
    ' Noch nicht rekursiv!
    Private Function FindWindowFromHandle(ByVal hWnd As IntPtr) As Control
        If hWnd = Me.Handle Then Return Me
        For Each c As Control In Controls
            If hWnd = c.Handle Then Return c
        Next
        Return Nothing
    End Function
 
    Dim controlWithMouse As Control
    Dim mouseInClient As Boolean
 
    Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) _
      As Boolean Implements System.Windows.Forms.IMessageFilter.PreFilterMessage
 
        Select Case m.Msg
            Case WM_MOUSEMOVE
                If Not mouseInClient Then
                    controlWithMouse = FindWindowFromHandle(m.HWnd)
                    If controlWithMouse Is Nothing Then
                        Debug.WriteLine("Enterered unknown")
                        Return False
                    Else
                        Debug.WriteLine("Entered " & controlWithMouse.Name)
                    End If
                    mouseInClient = True
                End If
            Case WM_MOUSELEAVE
                mouseInClient = False
                If controlWithMouse Is Nothing Then
                    Debug.WriteLine("Left unknown")
                    Return False
                Else
                    Debug.WriteLine("Left " & controlWithMouse.Name)
                    controlWithMouse = Nothing
                End If
        End Select
        Return False
    End Function
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Application.AddMessageFilter(Me)
    End Sub
End Class
Weiter bin ich nicht gekommen. Immerhin kann man sämtliche Controls behandeln, ohne Events für alle Controls zu benutzen. Anscheinend braucht man die API nicht, ich vermute Windows Forms macht das selbst.

Hier sind ein paar Deklarationen , habe ich doch bei mir gehabt

Module WinDefs
 
 
    Public Const WM_NULL As Integer = &H0
    Public Const WM_CREATE As Integer = &H1
    Public Const WM_DESTROY As Integer = &H2
    Public Const WM_MOVE As Integer = &H3
    Public Const WM_SIZE As Integer = &H5
 
    Public Const WM_ACTIVATE As Integer = &H6
 
    '
    ' WM_ACTIVATE state values
 
    Public Const WA_INACTIVE As Integer = 0
    Public Const WA_ACTIVE As Integer = 1
    Public Const WA_CLICKACTIVE As Integer = 2
 
    Public Const WM_SETFOCUS As Integer = &H7
    Public Const WM_KILLFOCUS As Integer = &H8
    Public Const WM_ENABLE As Integer = &HA
    Public Const WM_SETREDRAW As Integer = &HB
    Public Const WM_SETTEXT As Integer = &HC
    Public Const WM_GETTEXT As Integer = &HD
    Public Const WM_GETTEXTLENGTH As Integer = &HE
    Public Const WM_PAINT As Integer = &HF
    Public Const WM_CLOSE As Integer = &H10
    Public Const WM_QUERYENDSESSION As Integer = &H11
    Public Const WM_QUIT As Integer = &H12
    Public Const WM_QUERYOPEN As Integer = &H13
    Public Const WM_ERASEBKGND As Integer = &H14
    Public Const WM_SYSCOLORCHANGE As Integer = &H15
    Public Const WM_ENDSESSION As Integer = &H16
    Public Const WM_SHOWWINDOW As Integer = &H18
    Public Const WM_WININICHANGE As Integer = &H1A
 
    Public Const WM_SETTINGCHANGE As Integer = WM_WININICHANGE
 
    Public Const WM_DEVMODECHANGE As Integer = &H1B
    Public Const WM_ACTIVATEAPP As Integer = &H1C
    Public Const WM_FONTCHANGE As Integer = &H1D
    Public Const WM_TIMECHANGE As Integer = &H1E
    Public Const WM_CANCELMODE As Integer = &H1F
    Public Const WM_SETCURSOR As Integer = &H20
    Public Const WM_MOUSEACTIVATE As Integer = &H21
    Public Const WM_CHILDACTIVATE As Integer = &H22
    Public Const WM_QUEUESYNC As Integer = &H23
 
    Public Const WM_GETMINMAXINFO As Integer = &H24
 
    ' Struct pointed to by WM_GETMINMAXINFO lParam
 
    'public type MINMAXINFO {
    '    POINT ptReserved
    '    POINT ptMaxSize
    '    POINT ptMaxPosition
    '    POINT ptMinTrackSize
    '    POINT ptMaxTrackSize
    'End Type
 
    Public Const WM_PAINTICON As Integer = &H26
    Public Const WM_ICONERASEBKGND As Integer = &H27
    Public Const WM_NEXTDLGCTL As Integer = &H28
    Public Const WM_SPOOLERSTATUS As Integer = &H2A
    Public Const WM_DRAWITEM As Integer = &H2B
    Public Const WM_MEASUREITEM As Integer = &H2C
    Public Const WM_DELETEITEM As Integer = &H2D
    Public Const WM_VKEYTOITEM As Integer = &H2E
    Public Const WM_CHARTOITEM As Integer = &H2F
    Public Const WM_SETFONT As Integer = &H30
    Public Const WM_GETFONT As Integer = &H31
    Public Const WM_SETHOTKEY As Integer = &H32
    Public Const WM_GETHOTKEY As Integer = &H33
    Public Const WM_QUERYDRAGICON As Integer = &H37
    Public Const WM_COMPAREITEM As Integer = &H39
 
    Public Const WM_GETOBJECT As Integer = &H3D
 
    Public Const WM_COMPACTING As Integer = &H41
    Public Const WM_COMMNOTIFY As Integer = &H44   ' no Integerer suported
    Public Const WM_WINDOWPOSCHANGING As Integer = &H46
    Public Const WM_WINDOWPOSCHANGED As Integer = &H47
 
    Public Const WM_POWER As Integer = &H48
    '
    ' wParam for WM_POWER window message and DRV_POWER driver notification
    '
    Public Const PWR_OK As Integer = 1
    Public Const PWR_FAIL As Integer = (-1)
    Public Const PWR_SUSPENDREQUEST As Integer = 1
    Public Const PWR_SUSPENDRESUME As Integer = 2
    Public Const PWR_CRITICALRESUME As Integer = 3
 
    Public Const WM_COPYDATA As Integer = &H4A
    Public Const WM_CANCELJOURNAL As Integer = &H4B
 
    '
    ' lParam of WM_COPYDATA message points to...
    '
    'public Type COPYDATASTRUCT
    '    DWORD dwData
    '    DWORD cbData
    '    PVOID lpData
    'End Type
 
    Public Const WM_NOTIFY As Integer = &H4E
    Public Const WM_INPUTLANGCHANGEREQUEST As Integer = &H50
    Public Const WM_INPUTLANGCHANGE As Integer = &H51
    Public Const WM_TCARD As Integer = &H52
    Public Const WM_HELP As Integer = &H53
    Public Const WM_USERCHANGED As Integer = &H54
    Public Const WM_NOTIFYFORMAT As Integer = &H55
 
    Public Const NFR_ANSI As Integer = 1
    Public Const NFR_UNICODE As Integer = 2
    Public Const NF_QUERY As Integer = 3
    Public Const NF_REQUERY As Integer = 4
 
    Public Const WM_CONTEXTMENU As Integer = &H7B
    Public Const WM_STYLECHANGING As Integer = &H7C
    Public Const WM_STYLECHANGED As Integer = &H7D
    Public Const WM_DISPLAYCHANGE As Integer = &H7E
    Public Const WM_GETICON As Integer = &H7F
    Public Const WM_SETICON As Integer = &H80
 
    Public Const WM_NCCREATE As Integer = &H81
    Public Const WM_NCDESTROY As Integer = &H82
    Public Const WM_NCCALCSIZE As Integer = &H83
    Public Const WM_NCHITTEST As Integer = &H84
    Public Const WM_NCPAINT As Integer = &H85
    Public Const WM_NCACTIVATE As Integer = &H86
    Public Const WM_GETDLGCODE As Integer = &H87
    Public Const WM_SYNCPAINT As Integer = &H88
    Public Const WM_NCMOUSEMOVE As Integer = &HA0
    Public Const WM_NCLBUTTONDOWN As Integer = &HA1
    Public Const WM_NCLBUTTONUP As Integer = &HA2
    Public Const WM_NCLBUTTONDBLCLK As Integer = &HA3
    Public Const WM_NCRBUTTONDOWN As Integer = &HA4
    Public Const WM_NCRBUTTONUP As Integer = &HA5
    Public Const WM_NCRBUTTONDBLCLK As Integer = &HA6
    Public Const WM_NCMBUTTONDOWN As Integer = &HA7
    Public Const WM_NCMBUTTONUP As Integer = &HA8
    Public Const WM_NCMBUTTONDBLCLK As Integer = &HA9
 
    Public Const WM_KEYFIRST As Integer = &H100
    Public Const WM_KEYDOWN As Integer = &H100
    Public Const WM_KEYUP As Integer = &H101
    Public Const WM_CHAR As Integer = &H102
    Public Const WM_DEADCHAR As Integer = &H103
    Public Const WM_SYSKEYDOWN As Integer = &H104
    Public Const WM_SYSKEYUP As Integer = &H105
    Public Const WM_SYSCHAR As Integer = &H106
    Public Const WM_SYSDEADCHAR As Integer = &H107
    Public Const WM_KEYLAST As Integer = &H108
 
    Public Const WM_IME_STARTCOMPOSITION As Integer = &H10D
    Public Const WM_IME_ENDCOMPOSITION As Integer = &H10E
    Public Const WM_IME_COMPOSITION As Integer = &H10F
    Public Const WM_IME_KEYLAST As Integer = &H10F
 
    Public Const WM_INITDIALOG As Integer = &H110
    Public Const WM_COMMAND As Integer = &H111
    Public Const WM_SYSCOMMAND As Integer = &H112
    Public Const WM_TIMER As Integer = &H113
    Public Const WM_HSCROLL As Integer = &H114
    Public Const WM_VSCROLL As Integer = &H115
    Public Const WM_INITMENU As Integer = &H116
    Public Const WM_INITMENUPOPUP As Integer = &H117
    Public Const WM_MENUSELECT As Integer = &H11F
    Public Const WM_MENUCHAR As Integer = &H120
    Public Const WM_ENTERIDLE As Integer = &H121
 
    Public Const WM_MENURBUTTONUP As Integer = &H122
    Public Const WM_MENUDRAG As Integer = &H123
    Public Const WM_MENUGETOBJECT As Integer = &H124
    Public Const WM_UNINITMENUPOPUP As Integer = &H125
    Public Const WM_MENUCOMMAND As Integer = &H126
 
    Public Const WM_CTLCOLORMSGBOX As Integer = &H132
    Public Const WM_CTLCOLOREDIT As Integer = &H133
    Public Const WM_CTLCOLORLISTBOX As Integer = &H134
    Public Const WM_CTLCOLORBTN As Integer = &H135
    Public Const WM_CTLCOLORDLG As Integer = &H136
    Public Const WM_CTLCOLORSCROLLBAR As Integer = &H137
    Public Const WM_CTLCOLORSTATIC As Integer = &H138
 
 
    Public Const WM_MOUSEFIRST As Integer = &H200
    Public Const WM_MOUSEMOVE As Integer = &H200
    Public Const WM_LBUTTONDOWN As Integer = &H201
    Public Const WM_LBUTTONUP As Integer = &H202
    Public Const WM_LBUTTONDBLCLK As Integer = &H203
    Public Const WM_RBUTTONDOWN As Integer = &H204
    Public Const WM_RBUTTONUP As Integer = &H205
    Public Const WM_RBUTTONDBLCLK As Integer = &H206
    Public Const WM_MBUTTONDOWN As Integer = &H207
    Public Const WM_MBUTTONUP As Integer = &H208
    Public Const WM_MBUTTONDBLCLK As Integer = &H209
 
    Public Const WM_MOUSEWHEEL As Integer = &H20A
    Public Const WM_MOUSELAST As Integer = &H20A
 
    'public Const WM_MOUSELAST          As Integer = &H209
 
    Public Const WHEEL_DELTA As Integer = 120                        ' Value 
    ' for rolling one detent '
 
    'public Const WHEEL_PAGESCROLL As Integer = (UINT_MAX)     ' Scroll one page
 
    Public Const WM_PARENTNOTIFY As Integer = &H210
    Public Const WM_ENTERMENULOOP As Integer = &H211
    Public Const WM_EXITMENULOOP As Integer = &H212
 
    Public Const WM_NEXTMENU As Integer = &H213
 
    'public Type MDINEXTMENU
    'HMENU   hmenuIn
    'HMENU   hmenuNext
    'HWND    hwndNext
    'End Type
 
    Public Const WM_SIZING As Integer = &H214
    Public Const WM_CAPTURECHANGED As Integer = &H215
    Public Const WM_MOVING As Integer = &H216
 
    Public Const WM_POWERBROADCAST As Integer = &H218
 
    Public Const PBT_APMQUERYSUSPEND As Integer = &H0
    Public Const PBT_APMQUERYSTANDBY As Integer = &H1
 
    Public Const PBT_APMQUERYSUSPENDFAILED As Integer = &H2
    Public Const PBT_APMQUERYSTANDBYFAILED As Integer = &H3
 
    Public Const PBT_APMSUSPEND As Integer = &H4
    Public Const PBT_APMSTANDBY As Integer = &H5
 
    Public Const PBT_APMRESUMECRITICAL As Integer = &H6
    Public Const PBT_APMRESUMESUSPEND As Integer = &H7
    Public Const PBT_APMRESUMESTANDBY As Integer = &H8
 
    Public Const PBTF_APMRESUMEFROMFAILURE As Integer = &H1
 
    Public Const PBT_APMBATTERYLOW As Integer = &H9
    Public Const PBT_APMPOWERSTATUSCHANGE As Integer = &HA
 
    Public Const PBT_APMOEMEVENT As Integer = &HB
    Public Const PBT_APMRESUMEAUTOMATIC As Integer = &H12
    Public Const WM_DEVICECHANGE As Integer = &H219
 
    Public Const WM_MDICREATE As Integer = &H220
    Public Const WM_MDIDESTROY As Integer = &H221
    Public Const WM_MDIACTIVATE As Integer = &H222
    Public Const WM_MDIRESTORE As Integer = &H223
    Public Const WM_MDINEXT As Integer = &H224
    Public Const WM_MDIMAXIMIZE As Integer = &H225
    Public Const WM_MDITILE As Integer = &H226
    Public Const WM_MDICASCADE As Integer = &H227
    Public Const WM_MDIICONARRANGE As Integer = &H228
    Public Const WM_MDIGETACTIVE As Integer = &H229
 
    Public Const WM_MDISETMENU As Integer = &H230
    Public Const WM_ENTERSIZEMOVE As Integer = &H231
    Public Const WM_EXITSIZEMOVE As Integer = &H232
    Public Const WM_DROPFILES As Integer = &H233
    Public Const WM_MDIREFRESHMENU As Integer = &H234
 
    Public Const WM_IME_SETCONTEXT As Integer = &H281
    Public Const WM_IME_NOTIFY As Integer = &H282
    Public Const WM_IME_CONTROL As Integer = &H283
    Public Const WM_IME_COMPOSITIONFULL As Integer = &H284
    Public Const WM_IME_SELECT As Integer = &H285
    Public Const WM_IME_CHAR As Integer = &H286
 
    Public Const WM_IME_REQUEST As Integer = &H288
 
    Public Const WM_IME_KEYDOWN As Integer = &H290
    Public Const WM_IME_KEYUP As Integer = &H291
 
    Public Const WM_MOUSEHOVER As Integer = &H2A1
    Public Const WM_MOUSELEAVE As Integer = &H2A3
 
    Public Const WM_CUT As Integer = &H300
    Public Const WM_COPY As Integer = &H301
    Public Const WM_PASTE As Integer = &H302
    Public Const WM_CLEAR As Integer = &H303
    Public Const WM_UNDO As Integer = &H304
    Public Const WM_RENDERFORMAT As Integer = &H305
    Public Const WM_RENDERALLFORMATS As Integer = &H306
    Public Const WM_DESTROYCLIPBOARD As Integer = &H307
    Public Const WM_DRAWCLIPBOARD As Integer = &H308
    Public Const WM_PAINTCLIPBOARD As Integer = &H309
    Public Const WM_VSCROLLCLIPBOARD As Integer = &H30A
    Public Const WM_SIZECLIPBOARD As Integer = &H30B
    Public Const WM_ASKCBFORMATNAME As Integer = &H30C
    Public Const WM_CHANGECBCHAIN As Integer = &H30D
    Public Const WM_HSCROLLCLIPBOARD As Integer = &H30E
    Public Const WM_QUERYNEWPALETTE As Integer = &H30F
    Public Const WM_PALETTEISCHANGING As Integer = &H310
    Public Const WM_PALETTECHANGED As Integer = &H311
    Public Const WM_HOTKEY As Integer = &H312
 
    Public Const WM_PRINT As Integer = &H317
    Public Const WM_PRINTCLIENT As Integer = &H318
 
    Public Const WM_HANDHELDFIRST As Integer = &H358
    Public Const WM_HANDHELDLAST As Integer = &H35F
 
    Public Const WM_AFXFIRST As Integer = &H360
    Public Const WM_AFXLAST As Integer = &H37F
 
    Public Const WM_PENWINFIRST As Integer = &H380
    Public Const WM_PENWINLAST As Integer = &H38F
 
    Public Const WM_APP As Integer = &H8000
 
    '
    ' NOTE: All Message Numbers below as Integer = &H400 are RESERVED.
    '
    ' public Window Messages Start Here:
    '
    Public Const WM_USER As Integer = &H400
 
    '  wParam for WM_SIZING message  '
    Public Const WMSZ_LEFT As Integer = 1
    Public Const WMSZ_RIGHT As Integer = 2
    Public Const WMSZ_TOP As Integer = 3
    Public Const WMSZ_TOPLEFT As Integer = 4
    Public Const WMSZ_TOPRIGHT As Integer = 5
    Public Const WMSZ_BOTTOM As Integer = 6
    Public Const WMSZ_BOTTOMLEFT As Integer = 7
    Public Const WMSZ_BOTTOMRIGHT As Integer = 8
 
    '
    ' WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
    '
    Public Const HTERROR As Integer = (-2)
    Public Const HTTRANSPARENT As Integer = (-1)
    Public Const HTNOWHERE As Integer = 0
    Public Const HTCLIENT As Integer = 1
    Public Const HTCAPTION As Integer = 2
    Public Const HTSYSMENU As Integer = 3
    Public Const HTGROWBOX As Integer = 4
    Public Const HTSIZE As Integer = HTGROWBOX
    Public Const HTMENU As Integer = 5
    Public Const HTHSCROLL As Integer = 6
    Public Const HTVSCROLL As Integer = 7
    Public Const HTMINBUTTON As Integer = 8
    Public Const HTMAXBUTTON As Integer = 9
    Public Const HTLEFT As Integer = 10
    Public Const HTRIGHT As Integer = 11
    Public Const HTTOP As Integer = 12
    Public Const HTTOPLEFT As Integer = 13
    Public Const HTTOPRIGHT As Integer = 14
    Public Const HTBOTTOM As Integer = 15
    Public Const HTBOTTOMLEFT As Integer = 16
    Public Const HTBOTTOMRIGHT As Integer = 17
    Public Const HTBORDER As Integer = 18
    Public Const HTREDUCE As Integer = HTMINBUTTON
    Public Const HTZOOM As Integer = HTMAXBUTTON
    Public Const HTSIZEFIRST As Integer = HTLEFT
    Public Const HTSIZELAST As Integer = HTBOTTOMRIGHT
 
    Public Const HTOBJECT As Integer = 19
    Public Const HTCLOSE As Integer = 20
    Public Const HTHELP As Integer = 21
 
    '
    ' SendMessageTimeout values
    '
    Public Const SMTO_NORMAL As Integer = &H0
    Public Const SMTO_BLOCK As Integer = &H1
    Public Const SMTO_ABORTIFHUNG As Integer = &H2
 
    Public Const SMTO_NOTIMEOUTIFNOTHUNG As Integer = &H8
 
    '
    ' WM_MOUSEACTIVATE Return Codes
    '
    Public Const MA_ACTIVATE As Integer = 1
    Public Const MA_ACTIVATEANDEAT As Integer = 2
    Public Const MA_NOACTIVATE As Integer = 3
    Public Const MA_NOACTIVATEANDEAT As Integer = 4
 
    '
    ' WM_SETICON / WM_GETICON Type Codes
    '
    Public Const ICON_SMALL As Integer = 0
    Public Const ICON_BIG As Integer = 1
 
End Module
(Keineswegs vollständig).

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MouseHover und MouseLeave für gesamte Anwendung?5.067keco20.11.09 19:36
Re: MouseHover und MouseLeave für gesamte Anwendung?3.812ModeratorRalf Ehlert20.11.09 20:42
Re: MouseHover und MouseLeave für gesamte Anwendung?3.694keco20.11.09 20:48
Re: MouseHover und MouseLeave für gesamte Anwendung?3.799ModeratorRalf Ehlert20.11.09 22:23
Re: MouseHover und MouseLeave für gesamte Anwendung?3.534keco20.11.09 22:29
Re: MouseHover und MouseLeave für gesamte Anwendung?3.637ModeratorDaveS21.11.09 08:55
Re: MouseHover und MouseLeave für gesamte Anwendung?3.496keco21.11.09 09:38
Re: MouseHover und MouseLeave für gesamte Anwendung?3.503keco21.11.09 09:57
Re: MouseHover und MouseLeave für gesamte Anwendung?3.635ModeratorDaveS21.11.09 13:52
Re: MouseHover und MouseLeave für gesamte Anwendung?3.590keco21.11.09 14:08
Re: MouseHover und MouseLeave für gesamte Anwendung?3.632ModeratorDaveS21.11.09 16:07
Re: MouseHover und MouseLeave für gesamte Anwendung?3.463keco21.11.09 16:18
Re: MouseHover und MouseLeave für gesamte Anwendung?3.677ModeratorDaveS21.11.09 21:15
Re: MouseHover und MouseLeave für gesamte Anwendung?3.608keco21.11.09 23:17
Re: MouseHover und MouseLeave für gesamte Anwendung?3.892ModeratorDaveS22.11.09 10:02
Re: MouseHover und MouseLeave für gesamte Anwendung?3.501keco22.11.09 14:04
Re: MouseHover und MouseLeave für gesamte Anwendung?3.446HellDoG08.12.09 12:07
Re: MouseHover und MouseLeave für gesamte Anwendung?3.482keco08.12.09 15:36
Re: MouseHover und MouseLeave für gesamte Anwendung?3.564HellDoG09.12.09 08:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel