1

これは、私のリストビューグループの1つにマウスを合わせるとどうなるかです:http://localhostr.com/file/930/vtdFrMNdvDwz/Untitled.png

System :: Windows :: Forms :: ListViewGroupのmsdnWebサイトを調べたところ、グループの選択/クリックイベントを無効にする方法に関する結果は見つかりませんでした。

リストビューとグループは、Visual Studio 2010 vc ++ Windowsフォームのデザイナーで作成され、次のコードを自動的に生成します。

System::Windows::Forms::ListViewGroup^  listViewGroup5 = (gcnew System::Windows::Forms::ListViewGroup(L"Player", System::Windows::Forms::HorizontalAlignment::Center));

私は現在、次のコードを使用してフォームのWndProcをオーバーライドしています。私の解決策の答えは、リストビューのWndProcもオーバーライドすることであると想定しています。その場合、どのように1つのコードに結合しますか...そうでない場合、解決策は何でしょうか?

protected:
    virtual void WndProc(Message% m) override 
    {
        __super::WndProc(m);
        if (m.Msg == WM_NCHITTEST) 
        {
            switch ((int)m.Result) 
            {
            case HTLEFT: 
            case HTRIGHT: 
            case HTTOP: 
            case HTTOPLEFT: 
            case HTTOPRIGHT:
            case HTBOTTOMLEFT: 
            case HTBOTTOMRIGHT:
                m.Result = (IntPtr)HTCLIENT;
            }
        }
    }

ありがとうございました!

4

1 に答える 1

0

Better ListView ExpressおよびBetter ListViewコントロールには、これが既に実装されています。単に呼び出す:

betterListView.GroupHeaderBehavior = betterListView.GroupHeaderBehavior & ~BetterListViewGroupHeaderBehavior.MouseHighlight;

グループ ヘッダーの強調表示をオフにします。

他のグループ ヘッダー オプションもあります: マウス フォーカス、キーボード フォーカス、およびグループ選択。

于 2013-02-07T19:55:18.777 に答える