ListView
私はその上に他のコントロールを表示しています。コントロールの1つをクリックしてアクションを起こすとキャプチャできます。私が望むのは、その下のListView
にクリック通知を送信して、ListView
がクリックされたかのように動作するようにすることです。クリックが発生したListView
の項目を選択/選択解除します。手動で項目を選択/選択解除するのではなく、マルチセレクションリストであるかどうか、押されているキー、クリックされていない項目などを調べる必要がないため、ListView
にクリックメッセージを送信したい選択または未選択のままにする必要があります...理想的には、ListView
にクリック通知を送信し、クリックされたかのようにすべての適切な処理を行います。プログラムでListViewにメッセージを送信して、アイテムを選択/選択解除します
私はuser32.dll
からSendMessage
を呼び出すと周り果たしている - WM_NOTIFY
とOCM_NOTIFY
両方NMITEMACTIVATE
構造体でlParam
として。私はそれが動作するように感じることはできません。私も運がないOnNotifyMessage
コールで遊んでいます。
私は正常にリストビューの上にコントロールからのキャプチャをキャプチャすることができます、カーソル位置を取得し、その下のListView
のアイテム/サブアイテムに変換...私はちょうど見ることができませんListView
に送信する必要のある通知をプログラムで送信して適切な処置を講じます。
EDIT:
下のリンクで可能な解決策は、クリックがそれ以下のリストビューにコントロールを通過することができますが、あなたはすべてのコントロールのためのカスタムクラスを作成する必要がありますし、あなたが任意のクリックを処理する能力を失います上のコントロールのイベント。
あなたが必要とするものを過度に複雑にしているようです。 * "私はそれが複数選択リストであるかどうかを調べる必要はありません。" * - これは1ライナーです –
複数選択リストで、クリックイベントをリストに送信すると、 ctrlボタンが押されていないときは、1つの項目だけを選択するように動作するはずです。言い換えれば、手作業を選択/選択解除したときに発生する追加の複雑さはわかりません。 –
ListViewが行うロジックを試してシミュレートするのはかなり複雑です。 1)マルチセレクション、2)Ctrlキー、3)シフトキー、(最後に選択されたアイテムがあれば)5)現在選択されているアイテムそうでない場合は、これらの変数のすべての組み合わせに基づいて、選択と選択解除をプログラムする必要があります。メッセージをListViewに送信し、それを行います – jrhoads23