MFC高手指点 关于CDataExchange()函数的菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 23:57:29
我写了一个对话框 其中有个横向滑块的控件 和我自定义的一个变量关联
我要通过这个变量 在旁边一个静态文本控件里输入百分比 那么我该在什么地方写更新函数呢
书上是在CDataExchange()这个函数里去更新 这个函数不是被UpDateData()函数调用的吗?
我不明白这个函数如何做到和我的滑块空间同步更新的呢 我试了试 确实可以同步更新 说明这个函数肯定在对话框改变的时候 被调用了 请问是什么时候被调用的呢?

还有个小问题 就是CDateExchange::Fail() 函数是什么东东啊

很简单的问题,如果需要,可以写个例子给你。

虚函数...
基类里面有调用的函数在继承类中是虚函数,就执行继承类中的虚函数.

CDateExchange::Fail() 数据转换失败

void AFXAPI DDX_Slider(CDataExchange* pDX, int nIDC, int& value)
{
HWND hWndCtrl = pDX->PrepareCtrl(nIDC);
if (pDX->m_bSaveAndValidate)
value = (int) ::SendMessage(hWndCtrl, TBM_GETPOS, 0, 0l);
else
::SendMessage(hWndCtrl, TBM_SETPOS, TRUE, value);
}

从slider将值更新到变量或者将变量的值设置到slider上面,就是通过上面这个实现的。这个在你的DoDataExchange里面。