对于动态创建出来的多个编辑框的EN_CHANGE响应事件的处理,需要用到ON_CONTROL_RANGE。
看一看它的宏:
#define ON_CONTROL_RANGE(wNotifyCode, id, idLast, memberFxn) \
{ WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)idLast, AfxSigCmd_RANGE, \
(AFX_PMSG) \
(static_cast< void (AFX_MSG_CALL CCmdTarget::*)(UINT) > (memberFxn)) },
看得出来,它的参数表和ON_NOTIFY_RANGE差不多,唯一不同,就是它的响应函数只有一个UINT的参数,其实就是控件ID。
实现它的响应:
void CMyTestDemoDlg::OnChangeEdit(UINT id) { /*******/ }
就可以根据id来处理对应编辑框的文本变化。
来看一看效果