- 題名: TextBox右クリック時メニュー表示を抑止する処理でエラー
- 日時: 2007/03/02 20:27:57
- ID: 19230
- この記事の返信元:
- (なし)
- この記事への返信:
- [19236] Re[1]: TextBox右クリック時メニュー表示を抑止する処理でエラー2007/03/03 3:27:14
- ツリーを表示
■No19236に返信(千八之介さんの記事) # 敬称が抜けていたので修正。 千八○○(一応伏せ字)さんから千八之介さんに改名されたのですね。 えーと、元のどぼん!さんの記事は、できるだけ簡単にやろうという感じがした のですが、CAT-chy さんのコメントではそれではダメなのでこういう方が良いの では?という話なのですね。 で、元々のきっかけが「コンテキストメニューを出さない」的な話だと思ったわ けですけれども、それならば WM_MOUSEMOVE やらゴチャゴチャやらずとも、 WM_CONTEXTMENU を無効にしてしまえばなんとかなるのではないかしらん?と思っ たのですが、それではダメでしょうか。 C# で恐縮ですが、とりあえずこんな感じで。 protected override void WndProc(ref Message m) { const int WM_CONTEXTMENU = 0x007B; if (m.Msg == WM_CONTEXTMENU) { return; } base.WndProc(ref m); } 単にペーストを無視するだけであれば、千八之介さんがすでに書かれているよう にWM_PASTE を何もしないようにするだけでいいかもしれません。 # 結局のところ「なにがしたいのか」が元質問からうまく導き出せなかったので # ちょっと苦労しました
■No19239に返信(ぽぴ王子さんの記事) 簡単な方法があったのですね。以下のようにして解決しました。 Protected Overrides Sub WndProc(ByRef m As Message) Const WM_PASTE As Integer = &H302 Const WM_CONTEXTMENU As Integer = &H7B Select Case m.Msg Case WM_PASTE, WM_CONTEXTMENU Return End Select MyBase.WndProc(m) End Sub ありがとうございました。
分類:[.NET]