- 日時: 2009/04/20 17:21
- 名前: 魔界の仮面弁士
- ***********************************************************************************
* カテゴリー:[グリッド関係][マウス][] * * キーワード:MSHFlexGrid,イベント,マウスホイール,スクロール,ホイールマウス * ***********************************************************************************
> 上記の魔界の仮面弁士さんの投稿を見て面白そうだったので試して見ました。 > ----------------------------------------------------------------------------------- > 投稿日 : 2009/04/19(Sun) 14:30 > 回答者 : 花ちゃん
さらに手を加えて、回転速度を検出できるタイプのマウスをサポートしてみました。 同じ量を回転させた場合は、素早く回すほど、より多くスクロールします。
> Private Sub DirectXEvent8_DXCallback(ByVal EventId As Long) > If EventId <> hEvent Then > Exit Sub > End If > Dim devdata(7) As DxVBLibA.DIDEVICEOBJECTDATA > Dim datacnt As Long > On Error Resume Next > datacnt = oDIDevM.GetDeviceData(devdata, DIGDD_DEFAULT) > If Err.Number <> 0 Then > datacnt = 0 > oDIDevM.Acquire > End If > On Error GoTo 0
Const WHEEL_DELTA As Long = 120 Dim i As Long For i = 0 To datacnt - 1 If devdata(i).lOfs = DIMOFS_Z Then Dim direction As Long direction = IIf(devdata(i).lData < 0, SB_LINEDOWN, SB_LINEUP) Dim count As Long count = Abs(devdata(i).lData) \ WHEEL_DELTA Dim j As Long For j = 1 To count SendMessage MSFlexGrid1.hWnd, WM_VSCROLL, direction, ByVal 0& Next End If Next i
> End Sub
|