私のアプリケーションはc++で、MFCとATLを組み合わせたものです。ここで使用しているのはMFCです。
ダイアログの1つに、CListCtrlから継承するカスタムリストコントロールクラスがあります。
リストの内容に依存するダイアログフォームの残りの部分を更新できるように、LVN_ITEMCHANGEDメッセージのハンドラーを追加しようとしています。具体的には、各リスト項目にチェックボックスフィールドがあり、それがいつ変更されたかを検出する必要があります。
問題は、私のリストがメッセージを送信していないことです。
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_OUTPUT_CMDS, OnLvnItemchangedListOutputCmds)
これが私のメッセージマップであり、問題なく機能します。メッセージを変更するだけで、LVN _ ITEMCHANGING、NM_CLICK、NM_RELEASEDCAPTUREなどの他のメッセージを検出しました。
したがって、私の推測では、listctrlカスタムクラスはどういうわけかメッセージを適切に投稿していません。
この質問にはさまざまな方法で答えることができます
。1。LVN_ITEMCHANGEDメッセージを子リストからその親(ダイアログ)に送信するにはどうすればよいですか。
2.私は正しいメッセージをキャッチしていますか?私が試したもののほとんどは、更新のトリガーが早すぎます(つまり、リスト内のデータが更新される前に)。これを行うと、リストの以前の状態に基づいてダイアログが更新されます。
3.私がしてはいけないことは他にありますか?私はこれをオープンエンドにするためだけにお願いします。