如题
解决方案 »
- 关于一个函数调用的问题.各位帮忙.我想了三天都没解决啊!
- text控件动态帮定ADODB.Recordset,怎么报classid错误
- 在设计菜单的时候,请问怎样加分隔条?
- 【CSDN】【请问身份证(15,18位分二种情况)每位表示的意义及VB验证算法,谢】
- VB 中的DATAGRID某一列设置为COMBOX下拉框的问题
- 有关计算器的问题,谢谢大家了!!!!!!!50分啊!!!!!!!有效期8月30日前
- 怎样取得当前月份值(急)
- 帮忙做一个模拟彩票开奖的软件
- 请问哪位知道怎样做.hlp的文件?谢谢!
- 如何在vb中添加flash的动画,一个欢迎标题
- VB如何触发WebBrowser中的一个超连接?
- VB高手!!!!
添加如下代码
Private Sub Form_Load()
HookForm Me
End SubPrivate Sub Form_Unload(Cancel As Integer)
UnHookForm Me
End Sub添加一个模块,添加如下代码
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) 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 LongPublic Const WM_DRAWCLIPBOARD = &H308
Public Const GWL_WNDPROC = (-4)
Public Const CBN_DROPDOWN = 7
Public Const WM_COMMAND = &H111Private mpfnPrevProc As Long
Private mHookedForm As FormPublic Sub HookForm(F As Form)
Set mHookedForm = F
mpfnPrevProc = SetWindowLong(F.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End SubPublic Sub UnHookForm(F As Form)
Set mHookedForm = Nothing
SetWindowLong F.hwnd, GWL_WNDPROC, mpfnPrevProc
End SubPublic Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
Dim wNotifyCode As Integer
Dim wID As Integer
Select Case uMsg
Case WM_COMMAND
wNotifyCode = Int(wParam / &H10000)
wID = uMsg And &HFFFF
'Debug.Print Hex(wParam), Hex(wNotifyCode), Hex(wID)
Select Case wNotifyCode
Case CBN_DROPDOWN
MsgBox "DropDown"
'Do something here...
End Select
End Select
WindowProc = CallWindowProc(mpfnPrevProc, hwnd, uMsg, wParam, lParam)
End Function
http://expert.csdn.net/Expert/topic/1682/1682900.xml?temp=.4137079
我那个程序结构更好一点儿