0

Comtl32.dll v6.0のListViewは、次のように複数の選択を行います(Shiftキーを使用する場合)(xは選択されていることを意味します)

00xxxx
xxxxxx
xxxx00

ListViewの以前のバージョンは、次のように実行します。

00xx00
00xx00
00xx00

最初の方法(comctl32 v6.0の方法)を実行させる方法はありますか?

ありがとうジョン

4

1 に答える 1

2

簡単な答えはノーです。しかし、それは不完全に見えるので...

ListViewは、選択動作を変更できるAPIを公開していません。ハンスがコメントに斜めに書いているように、バージョン6.0より前のバージョンのcomctl32.dllにあるコントロールの動作を変更する唯一の方法はListView、時間のあることです。マシーン。選択イベントに関するコントロールには多くの固有の動作が組み込まれているため、所有者がコントロールを描画して選択動作の外観ListViewを変更しようとしても、突然、ほぼばかげた数の処理が必要になることになります。選択の変更を引き起こす可能性のあるウィンドウメッセージ。

この質問はまったく異なるレベルで誤った方向に進んでいることも指摘する価値があります。アプリケーションのユーザーがバージョン6.0より前のバージョンのcomctl32.dllを含むバージョンのWindowsを実行している場合、これは制御不能であると予想される動作です。それをオーバーライドして変更することは、彼らのコンピューターにある他のすべてのコントロールListViewと同じようには機能しないため、彼らを混乱させるだけです。ListView対照的に、アプリケーションのユーザーがcomctl32.dll v6以降を含むバージョンのWindowsを実行している場合、ListViewコントロールはデフォルトで説明したとおりに既に実行されます。(そして、まったく同じ理由で変更したくはありません。)

于 2010-12-08T06:18:14.793 に答える