DoDataExchange函数不被调用的原因是没有调基类的OnInitialUpdate()方法导致的。
解决如下:
void CMyView::OnInitialUpdate()
{
CFormView::OnInitialUpdate(); //关键所在
//other codes
}
CFormView::OnInitialUpdate();这一句不能少,是关键所在。
基类的OnInitialUpdate函数调用了CWnd的UpdateData(FLASE),而正是UpdateData才会调用我们的DoDataExchange函数,至此被绑定的变量才得以初始化。
所以自定义的窗口类如果要绑定控件与变量,一定要重载虚函数virtual void OnInitialUpdate(),并在里面调用基类的OnInitialUpdate方法。