MFC中重载的DoDataExchange函数为何不被调用

清泛原创

DoDataExchange函数不被调用的原因是没有调基类的OnInitialUpdate()方法导致的。

解决如下:

void CMyView::OnInitialUpdate()
{
  CFormView::OnInitialUpdate(); //关键所在
 //other codes
}

CFormView::OnInitialUpdate();这一句不能少,是关键所在。

基类的OnInitialUpdate函数调用了CWnd的UpdateData(FLASE),而正是UpdateData才会调用我们的DoDataExchange函数,至此被绑定的变量才得以初始化。

所以自定义的窗口类如果要绑定控件与变量,一定要重载虚函数virtual void OnInitialUpdate(),并在里面调用基类的OnInitialUpdate方法。

DoDataExchange OnInitialUpdate

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部