[リストへもどる]
一括表示

投稿時間:2003/03/13(Thu) 17:59
投稿者名:鈴木 ぼぶ
Eメール:
URL :
タイトル:
右クリックメニューの無効化
No113の「右クリックによるポップアップメニューを表示させない」
というのをやりたいんですが、

>Private Sub Text1_DblClick()
>  'ダブルクリック後の右クリック防止
>  Text1_MouseDown vbRightButton, 0, 0, 0
>End Sub

のところでエラーが起きてしまいます。
MouseDownイベントには何を書けばいいのでしょうか?

投稿時間:2003/03/13(Thu) 20:48
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 右クリックメニューの無効化
> MouseDownイベントには何を書けばいいのでしょうか?

すみませんでした。あの部分ミスプリントしていました。
下記に訂正願います。

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _
                                                x As Single, y As Single)
    If Button = vbRightButton Then    '右クリックしたら
        Dim Ret As Long
        Ret = SetCapture(Me.hWnd)     'Form にマウスキャプチャを設定
    End If
End Sub

自分で作っておきながら何ですが、この方法ではまだ問題がありますし、
サブクラス化し、WM_CUT, WM_COPY, WM_PASTE と WM_RBUTTONUP のメッセージを無効
にした方が簡単かと思います。
又、場合によっては事前にクリップボードの内容を退避させてからクリアして
LostFocus 時に元に戻す等の処理の方がいいかと思います。

投稿時間:2003/03/14(Fri) 00:15
投稿者名:Starfish
Eメール:
URL :
タイトル:
Re^2: 右クリックメニューの無効化
> 自分で作っておきながら何ですが、この方法ではまだ問題がありますし、
> サブクラス化し、WM_CUT, WM_COPY, WM_PASTE と WM_RBUTTONUP のメッセージを無効
> にした方が簡単かと思います。

 サブクラス化は、初心者には薦められませんが、確実ではありますね。
で、ポップアップメニューを表示させないのは、WM_CONTEXTMENU を握りつぶした
ほうがいいと思います。

投稿時間:2003/03/14(Fri) 10:22
投稿者名:鈴木 ぼぶ
Eメール:
URL :
タイトル:
Re^3: 右クリックメニューの無効化
No113の方法でうまくいきました。

> 自分で作っておきながら何ですが、この方法ではまだ問題がありますし、
少し気になりますが、今のところうまくいってるんでこの方法を使おうと思っています。
ありがとうございました。