タイトル | : MSFlexGridでマウスホイールによるスクロールを有効にする方法 |
記事No | : 16487 |
投稿日 | : 2019/06/28(Fri) 18:52 |
投稿者 | : かわの |
ウィンドウズ10上のVB6でMSFlexGridを利用したプログラムを作成中ですが、マウスホイールによるスクロールが機能しません。そこで2010/01/07付け花ちゃんさんの投稿記事を参考にさせていただき、自作プログラムにコードを貼り付けて実行したところ、実行時エラー「オートメーションエラーです。ハンドルが無効です。」と表示され、下記コードの最下行で止まってしまいました。
Option Explicit
Implements DirectXEvent8 Private oDX As DxVBLibA.DirectX8 Private oDI As DxVBLibA.DirectInput8 Private oDIDevM As DxVBLibA.DirectInputDevice8 Private hEvent As Long
Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Private Const WM_VSCROLL = &H115 Private Const SB_LINEUP = 0& Private Const SB_LINEDOWN = 1&
Private Sub Form_Load() With MSFlexGrid1 .Cols = 8 .Rows = 100 .RowHeightMin = 300 End With Dim i As Long For i = 1 To MSFlexGrid1.Rows - 1 MSFlexGrid1.TextMatrix(i, 0) = i Next i Set oDX = New DxVBLibA.DirectX8 Set oDI = oDX.DirectInputCreate() Set oDIDevM = oDI.CreateDevice("GUID_SysMouse") oDIDevM.SetCommonDataFormat DIFORMAT_MOUSE2 oDIDevM.SetCooperativeLevel Me.hWnd, DISCL_NONEXCLUSIVE Or DISCL_FOREGROUND ←ここで止まる
FormやMSFlexGridに関連するコード、また Private Sub DirectXEvent8_DXCallback についても漏れなく貼り付けたつもりです。エラー対処法についてご教示いただければ幸いです。
なお、dx8vb.dll は下記サイトを参考に c:\windows\system32 にインストールしました(一応「成功しました」のメッセージが出ました)。 http://shadowwarehouse.tuzikaze.com/MyProg/vista.htm
また、プロジェクト→参照設定で DirectX 8 for Visual Basic Type Library にチェック済みです。 よろしくお願いいたします。
|