0

私の mfc ダイアログ ベースのアプリケーションには、CListCtrl があります。ユーザーがリスト コントロールの空の項目をクリックしたときにボタンを無効にする必要があります。NM_CLICK メッセージを使用してこれを達成しました。しかし、ユーザーがリスト コントロール エリアの外にマウスをドラッグしてマウスを離した場合、これは機能しません。ボタンアップメッセージを受信したときにのみNM_CLICKが呼び出される理由を見つけました。これに対する他の解決策はありますか。

4

4 に答える 4

0

問題の解決策を見つけました。ユーザーが左ボタン、つまりLVN_BEGINDRAGを使用してマウスをドラッグした場合に処理できるメッセージがあります。コードは次のとおりです。ヘッダーに追加します

afx_msg void OnBeginDrag( NMHDR* pNMHDR, LRESULT *pResult );

実装では、メッセージ マップと対応する関数を追加します。

BEGIN_MESSAGE_MAP( .. )

ON_NOTIFY(LVN_BEGINDRAG、IDC_LIST1、OnBeginDrag)

END_MESSAGE_MAP

OnBeginDrag( .... )

{

Updatebutton();

}

それは問題を解決します。ご支援いただきありがとうございます。

于 2013-04-08T08:20:52.040 に答える