发信人: cobe()
整理人: cobe(1999-12-15 16:13:57), 站内信件
|
前几日见有网友问怎样制作自己的右键弹出式菜单,其实很简单,只要拦截系统的
消息,再做自己的处理就行了,我做了一个简单的例子,以作说明:
建一个工程,建一个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]
|
|