2012-01-25 9 views
0

CTreeCtrlがあり、TVN_ITEMEXPANDINGメッセージを使用したいが、ハンドラ関数は決してコールしない。MFC TVN_ITEMEXPANDINGがハンドラ関数を呼び出さない

CsetkliensDlg.h

afx_msg void OnItemExpanding(NMHDR* pNmhdr,LRESULT *lResult); 

CsetkliensDlg.cpp

BEGIN_MESSAGE_MAP(CCsetkliensDlg, CDialogEx) 
ON_NOTIFY_REFLECT(TVN_ITEMEXPANDING, &CCsetkliensDlg::OnItemExpanding) 
END_MESSAGE_MAP() 

...

void CCsetkliensDlg::OnItemExpanding(NMHDR* pNmhdr,LRESULT *lResult) 
{ 
    AfxMessageBox("almafa"); 
} 

項目はチャイルズを持っています。

答えて

0

親ダイアログで通知をキャッチしようとしているため、ON_NOTIFY_REFLECTの代わりにON_NOTIFYを使用する必要があります。もちろん

、あなたのメッセージマップは何かリク次のようになります。あなたは反射機構を使用することができますが、その後ハンドラはCTreeCtrlの派生クラスである必要があり

ON_NOTIFY(TVN_ITEMEXPANDING、CTREECTRL_RESOURCES_ID、ONHandlerFunction)

+0

うまく動作します –

関連する問題