#pragma once
class AlarmsList : public CVSListBox
{
DECLARE_DYNAMIC(AlarmsList)
public:
AlarmsList();
virtual ~AlarmsList();
void OnAfterAddItem(int index);
void OnSelectionChanged(NMHDR *pNMHDR, LRESULT *pResult);
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnDtnDatetimechangeDatetimepicker1(NMHDR *pNMHDR, LRESULT *pResult);
};
void AlarmsList::OnAfterAddItem(int index)
{
GetParent()->GetDlgItem(IDC_TIMEPICK)->EnableWindow(true);
LOGIC->addAlarm();
LOGIC->changeSelection(index);
}
void AlarmsList::OnSelectionChanged(NMHDR *pNMHDR, LRESULT *pResult)
{
}
当我添加一个新的项目,但OnSelectionChanged不会被调用多少我甚至尝试OnAfterAddItem被调用。
链接它槽消息映射既不dosnt工作:
IMPLEMENT_DYNAMIC(AlarmsList, CVSListBox)
BEGIN_MESSAGE_MAP(AlarmsList, CVSListBox)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST, OnSelectionChanged)
END_MESSAGE_MAP()
我创建使用创建函数AlarmsList对象。
源代码和项目:http://www.filedropper.com/clockmaster
Didnt help:/。 尝试了父属性页面和属性页面对话框。 重载dosnt工作:/,它确实为OnAfterAddItem强硬。是的,我正在使用与虚函数相同的参数。 – David
接下来的事情是使用Spy ++来验证控件确实发送了通知。之后,进入CWnd :: OnWndMsg或CWnd :: Notify,看看消息是如何传播/处理的。 –
是的,它的确在发送一个LVN_ITEMCHANGED。我如何调试功能?查找所有对OnWndMsg的引用只会给我声明。 – David