標准模組中 (.bas):
......' // 將需要的 API 宣告一下, 自己會吧.
Global g_MFWndProc As Long
Public Function MFWndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim wp As Long
Select Case uMsg
Case WM_MOUSEWHEEL
wp = wParam \ 65536
' 怎麽處理消息自己定義一下吧, 在這裏用簡單的WM_KEYDOWN 來處理了.
If wp > 0 Then
' 滾輪向上轉動
PostMessage hWnd, WM_KEYDOWN, vbKeyUp, 1
Else
'滾輪向下轉動
PostMessage hWnd, WM_KEYDOWN, vbKeyDown, 1
End If
MFWndProc = 0
Exit Function
End Select
MFWndProc = CallWindowProc(g_MFWndProc, hWnd, uMsg, wParam, lParam)
End Function
---------------------------------------------
在包含 MFlexGrid 的窗體中:
Private Sub Form_Load()
'..........
g_MFWndProc = SetWindowLong(MSFlexGrid1.hWnd, GWL_WNDPROC, AddressOf MFWndProc)
'..........
End Sub
Private Sub Form_UnLoad()
'........
SetWindowLong MSFlexGrid1.hWnd, GWL_WNDPROC, g_MFWndProc
End Sub
---------------------------------------
不要以 End 結束程式.
如果確實要以 End 結束, 要在 End 之前呼叫一下 Unload 裏的那個 SetWindowLong.
原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔
MCSD Training