精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓..各种开发技巧..〓〓>>进程、线程和消息>>VB Tips:如何拦截鼠标消息

主题:VB Tips:如何拦截鼠标消息
发信人: cobe()
整理人: winsy(2003-03-05 16:35:20), 站内信件
前几日见有网友问怎样制作自己的右键弹出式菜单,其实很简单,只要拦截系统的

消息,再做自己的处理就行了,我做了一个简单的例子,以作说明:

建一个工程,建一个Form,Form上有一个Timer控件,拷贝下面代码即可
(VB6下实现)

Private Declare Function GetDesktopWindow Lib "user32" () As Long

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Type MSG
    hwnd As Long
    message As Long
    wParam As Long
    lParam As Long
    time As Long
    pt As POINTAPI
End Type

Dim MYMSG As MSG
Dim myHwnd As Long
Dim returnCode As Boolean

Private Const WM_RBUTTONDBLCLK = &H206

Private Const WM_RBUTTONDOWN = &H204

Private Const WM_RBUTTONUP = &H205

Private Const WM_LBUTTONDBLCLK = &H203

Private Const WM_LBUTTONDOWN = &H201

Private Const WM_LBUTTONUP = &H202

Private Const WM_MBUTTONDBLCLK = &H209

Private Const WM_MBUTTONDOWN = &H207

Private Const WM_MBUTTONUP = &H208






Private Sub Form_Load()
myHwnd = GetDesktopWindow()
End Sub

Private Sub Timer1_Timer()
DoEvents
returnCode = GetMessage(MYMSG, Me.hwnd, 0, 1000)
Select Case MYMSG.message
Case WM_RBUTTONDOWN: MsgBox "按下右键"
Case WM_RBUTTONUP: MsgBox "释放右键"
Case WM_LBUTTONDOWN: MsgBox "按下左键"
Case WM_LBUTTONUP: MsgBox "释放右键"
Case WM_MBUTTONDOWN: MsgBox "按下中键"
Case WM_RBUTTONUP: MsgBox "释放中键"

End Select
End Sub

--
-------------
VB,VB小世界看看
http://vbsworld.yeah.net
icq:3251926
cobe

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.106.204.50]

[关闭][返回]