タイトル : 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 |