2009-08-28 39 views

答えて

1

私はWndProcを無効にして、テキストボックスが受け取るメッセージをキャプチャする必要があると思います。

1

可能ですが複雑です。私はあなたが標準のContextMenuの代わりに "近代的な" ContextMenuStripクラスを使用して独自のメニューを実装することをお勧めします。

1

サブクラスのTextBox(それから派生)またはネイティブ柄(NativeWindowの付き)、および以下のようにウィンドウプロシージャをオーバーライドします。

protected override void WndProc(ref Message m) 
{ 
    if (m.Msg == <your menu id>) { ... return; } 
    ... 

    if (m.Msg == 0x0093 /*WM_UAHINITMENU*/ || m.Msg == 0x0117 /*WM_INITMENUPOPUP*/ || m.Msg == 0x0116 /*WM_INITMENU*/) 
    { 
    IntPtr shortcut = m.Msg == 0x0093 ? Marshal.ReadIntPtr(m.LParam) : m.WParam; 
    // add <your menu id> to shortcut 
    ... 
    } 
    ... 
    base.WndProc(ref m); 
} 
関連する問題