VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/06/08(Wed) 15:17
投稿者ダンボ
URL
タイトル中央ボタンクリックのシミュレーション

マウスホイール取得の続編なのですが、ピクチャーボックスへのマウスホイール・イベントを
伝えるために、「Shif+Cntl+Altキーを押しながら中央ボタンをクリックした」イベントを
シミュレーションしようと思っています。下記の試験用コードでPostMessageを出すと、
wMsgすなわちButton、とlParamすなわちXとY、は正しくPicture1_MouseDownに伝わりますが、
wParamに何をセットしても、Picture1_MouseDownではShift=0になってしまいます。
何がいけないんでしょうかね?

Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Private Const WM_MBUTTONDOWN = &H207             '中央のマウスボタンが押された
Private Const MK_MBUTTON = &H10                  'マウス中ボタン
Private Const MK_SHIFT = &H4                     'SHIFTキー
Private Const MK_CONTROL = &H8                   'CTRLキー
Private Const MK_ALT = &H20                      'ALTキー

Private Sub Command1_Click()
Dim rc As Long, wMsg As Long, wParam As Long, lParam As Long
        wMsg = WM_MBUTTONDOWN       'simulate
'        wParam = MK_SHIFT + MK_CONTROL + MK_ALT
        wParam = &HFFFFFFFF
        lParam = &H10002
        rc = PostMessage(Picture1.hWnd, wMsg, wParam, lParam)
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
  Debug.Print Button, Shift, X, Y  '--->実行結果は 4 0 30 15
End Sub


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -