描述:
用动态方法在对话框的page里创建了一堆checkbox,combobox等控件,现需要监控它们是否被用户改变了状态(例如勾选或更改选项)
如果是静态定义的对话框控件,可以用以下方法来监控:
BEGIN_MESSAGE_MAP(KLay_AxisDialog, CDialog)
ON_BN_CLICKED(IDC_LAY_AXISAPPLY, OnChange)
ON_LBN_SELCHANGE(IDC_LAY_AXISBOX, OnChange)
END_MESSAGE_MAP()
然后完成OnChange函数即可.
但对于动态创建的控件,我手里当然只有它们的实例(CEdit m_Edit, CButton m_Checkbox等)而没有预分配的控件ID.如果用上面这种方式,我也需要把IDC_LAY_AXISBOX换成m_Checkbox.GetDlgCtrlID()获取其ID,但我不认为在MAP阶段它就已经有一个有效的ID,很可能出错.
求教我应该如何实现目的(监控动态创建的控件是否有状态变化)?谢谢