Win98 VC6.0+SP5.0 MFC
現在、ダイアログAの子としてリストビューコントロールを作成しています。
このリストビューコントロールで「Enter」キーが押された時の処理をしたく
以下のようなコードを(ClassWizardから)組み込みました。
---- ダイアログA.cpp ----
BEGIN_MESSAGE_MAP(DlgA, CDialog)
ON_NOTIFY(NM_RETURN, IDC_LIST, OnReturnList)
END_MESSAGE_MAP()
void DlgA::OnReturnList(NMHDR* pNMHDR, LRESULT* pResult) {
*pResult = 0;
}
-------------------------
---- ダイアログA.h ----
class DlgA : public CDialog
{
:
protected:
afx_msg void OnReturnList(NMHDR* pNMHDR, LRESULT* pResult);
DECLARE_MESSAGE_MAP()
};
-----------------------
これで、リストにフォーカスがある時の「Enter」キーを処理できると考えていたのですが
実際はダイアログAに先にメッセージを取られてしまい(DlgA::OnOK()がコールされる)、
DlgA::OnReturnList() がコールされません。
いざとなれば別の方法で対応するのですが、何故 OnReturnList() が呼ばれないのか
疑問が残っています。
判る方がいましたら教えてもらえないでしょうか。