在“UpdateData(FALSE);”处设置断点,按“F11”调试时进入此函数,您会发现“CWnd :: Update”的定义包括以下行。
代码片段
//阻止在UpdateData期间调度控制通知
_AFX_THREAD_STATE * pThreadState = AfxGetThreadState();
HWND hWndOldLockout = pThreadState-> m_hLockoutNotifyWindow;
ASSERT(hWndOldLockout!= m_hWnd); //一定不能递归
pThreadState-> m_hLockoutNotifyWindow = m_hWnd;
正如注释所述,上面的代码阻止在UpdateData期间调度控制通知,因此编辑控件的父窗口的Windows过程不会收到EN_UPDATE和EN_CHANGE通知。
有关EN_UPDATE和EN_CHANGE的详细信息,请参阅
http://msdn2.microsoft.com/en-us/library/bb761687(VS.85).aspx