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

タイトル Re: 右クリックでのPopUpMenuについて
投稿日: 2011/05/29(Sun) 09:44
投稿者花ちゃん
> ・VB6にて
環境は、キチンと書くようにして下さい。
それと、wanko さんと同じ方でしょうか?

> そこで質問なのですが、CommandoButtonのイベント以外でも構わないので、フォーム上のどこでも、右クリックでPopUpMenuがひらけるような方法はないでしょうか?

本当に、[フォーム上のどこでも] が必要なのでしょうか?
Form の枠上やタイトルバー上・システムメニュー上でも右クリックを感知したいの
でしょうか?

そもそもそのような処理ならメニューにでも設定すべきかと思います。
PopUpMenu は、そのコントロールなりに関連のあるメニューだけを設定する方が自然かと
思います。
クライアント領域内で、かつ、簡単な方法なら下記を試して見てください。

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32.dll" _
   (ByVal vKey As Long) As Integer
Private Sub Form_Load()
   Me.Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
   If GetAsyncKeyState(vbKeyRButton) < 0 Then
      MsgBox "マウスの右ボタンがクリックされました"
   End If
End Sub

後は、サブクラス化するか DirectX 等で、右クリックのメッセージをとらまえるとか、
単純に、Form 上にあるすべてのコントロールのイベントに書くとか。

検索して、下調べをしていたなら下記のような投稿も見つかっていたかと。
http://hanatyan.sakura.ne.jp/patio/read.cgi?no=228
http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?mode=allread&no=13596#13597

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

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