thanks
解决方案 »
- 如何vb6.0中把查询出来的access数据库中数据导出到Excel表中
- vb XMLDOM解析xml中文出现乱码
- 初级:如何改变textbox的背景色,顶者有份!!!
- 初学vb,问简单的与sqlserver的操作问题,在线等,急,立即给分!
- 急问!!
- 急救 恳请帮忙!请问在DataReport里竖排打印不下来 怎样实现横排打印啊!
- 二级字库汉字的拼音首字母问题(win98)?100分相送
- 谁能帮我把这个文件打包,然后在其它没有装VB的操作系统上可以用?
- VB数据库查询不准确的问题求解
- 有什么简单的方法知道用户从我的程序切换到别的程序,Form的LostFocus事件检测不到!
- 高分求解DataGrid TAB 顺序问题
- 怎样获取本机的ip地址?
Private Sub Form_Load()
Call Hook(Text1.hWnd)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Call UnHook
End Sub'Model1代码:Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = -4
Public Const WM_RBUTTONUP = &H205
Public lpPrevWndProc As Long
Private lngHWnd As LongPublic Sub Hook(hWnd As Long)
lngHWnd = hWnd
lpPrevWndProc = SetWindowLong(lngHWnd, GWL_WNDPROC, AddressOf WindowProc)
End SubPublic Sub UnHook()
Dim lngReturnValue As Long
lngReturnValue = SetWindowLong(lngHWnd, GWL_WNDPROC, lpPrevWndProc)
End SubFunction WindowProc(ByVal hw As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal _
lParam As Long) As Long
Select Case uMsg
'检测鼠标击键消息,如果是单击右键
Case WM_RBUTTONUP
'什么事也不做或弹出自己定制的菜单
' MsgBox "right button clicked."
Case WM_CUT, WM_COPY, WM_PASTE Exit Function
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Select
End Function
EnumChildWindows Me.hwnd, AddressOf EnumChildProc, ByVal 0&
End Sub========================================================================
'Module1:
Private Type WNDCLASS
style As Long
lpfnwndproc As Long
cbClsextra As Long
cbWndExtra2 As Long
hInstance As Long
hIcon As Long
hCursor As Long
hbrBackground As Long
lpszMenuName As String
lpszClassName As String
End TypePublic Declare Function GetClassInfo Lib "user32" Alias "GetClassInfoA" (ByVal hInstance As Long, ByVal lpClassName As String, lpWndClass As WNDCLASS) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const GWL_WNDPROC = (-4)
Public Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public hRgn As Long, prevWndProc As LongPublic Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim WC As WNDCLASS
'Get class info
GetClassInfo hwnd, "Edit", WC
If WC.lpszClassName = "Edit" Then
prevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)
SetWindowLong hwnd, GWL_WNDPROC, AddressOf WndProc
End If
EnumChildProc = 1
End FunctionPublic Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo ShowErr
If Msg = WM_RBUTTONDBLCLK Or Msg = WM_RBUTTONDOWN Or Msg = WM_RBUTTONUP Then
Exit Function
End If
WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
Exit Function
ShowErr:
MsgBox Err.Source & "-" & Err.Description
End Function