質問
comtl32.dll v6.0のlistViewは、次のように複数の選択(Shiftキーを使用する場合)を実行します(xは選択されたことを意味します)
00xxxx
xxxxxx
xxxx00
ListViewの以前のバージョンは次のように行います。
00xx00
00xx00
00xx00
最初の方法(comctl32 v6.0の方法)を行う方法はありますか?
ジョンに感謝します
解決
短い答えはノーです。 しかし、それは不完全に思えるからです...
ListView
選択動作を変更できるAPIを公開しません。ハンスが斜めにコメントに入れているように、の動作を変更する唯一の方法は ListView
バージョン6.0より前のCOMCTL32.DLLのバージョンにあるコントロールは、タイムマシンを使用しています。に組み込まれているユニークな行動がたくさんあります ListView
選択イベントに関するコントロールなので、たとえあなたが試して所有者を試してみても、コントロールを描いて修正 外観 選択動作のうち、選択の変更を引き起こす可能性のあるほぼばかげた数のウィンドウメッセージを処理する必要があることに突然直面するでしょう。
また、この質問はまったく異なるレベルで見当違いであることを指摘する価値があります。アプリケーションのユーザーがバージョン6.0より前にcomctl32.dllのバージョンを含むWindowsのバージョンを実行している場合、 これは彼らが期待する行動です の外へ ListView
コントロール。それは他のすべてのものと同じように機能しないので、それは彼らに混乱することに他なりません。 ListView
コンピューターで見つかった制御。対照的に、アプリケーションのユーザーがCOMCTL32.DLL V6以降を含むWindowsのバージョンを実行している場合、 ListView
制御する すでに デフォルトで説明したとおりに実行します。 (そして、まったく同じ理由でそれを変更したくないはずです。)