tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル MSFlexGridでマウスホイールによるスクロールを有効にする方法
投稿日: 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 にチェック済みです。
よろしくお願いいたします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。