VC中关于UpdateData()函数的问题?

将控件的值传递给与之相关联的变量时,需要调用UpdateData(TRUE);
下面是我编的一个往对话框的编辑框控件中传递值的程序,赋值号右边的是与控件相关联的变量,左边为需要赋值的变量.
我想请教一下,为什么在程序中我没有调用UpdateData(TRUE),仍然能使关联的变量值为控件的值.程序里需要再增加UpdateData(TRUE)吗?
void CDrawView::OnTongfengcs() 
{
// TODO: Add your command handler code here
CTONGFCSDlg tfcs;
CDrawDoc* pDoc = GetDocument();
if(tfcs.DoModal()==IDOK)
{
//UpdateData();
pDoc->Vn=tfcs.m_Vn;
pDoc->Ssr=tfcs.m_Ssr;
}
}

眼眸繁星
浏览 737回答 3
3回答

翻翻过去那场雪

**********UpdateData()使用场合:在对话框不消失的情况下,对对话框中部分区域的重绘或者提前对话框部分信息,比如改变某个控件的值的显示或者获取该控件的值。**********看你的需求,你是想取用控件的值,而且是在对话框消失之后( DoModal()执行结束,对话框消失,但与之关联的对话框变量有效,且自动保存消失前的最新信息),自然不要调用UpdateData。**********另外注意,以后要是碰到对话框不消失的场合,必须用UpdateData(),它的默认参数是True,就是提前控件信息。如果需要更新控件信息,必须调用UpdateData(FALSE)。

慕的地10843

UpdateData(TRUE)是将控件的状态传给其关联的变量,当然你要为控件关联上变量才行。UpdateData(FALSE)是将控件的关联变量的值传给控件并改变控件状态。UpdateData刷新的是当前对话框。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Unity 3D