当写好一个SDI或者MDI之后,需要进行界面交互,常用的方法之一就是采用模态对话框。第一次尝试之后发现,变量与对话框绑定,对话框创建完并输入相关的值之后,DoModal之后并不能获取输入后的值。
原对话框值:
希望改成:
结果传入的值为:
</pre><p></p><p>NetEdit.DoModal()后的值并未改变。</p><p>经过跟踪发现,值输入之后,并未UPDATA(TRUE)。那究竟何时才UPDATA呢?</p><p>在网上搜了一些资料并经过实践发现,需要在DLG DESTROY 时需要发送ON_WM_DESTROY,并在函数OnDestroy()中执行 UpdateData(TRUE);</p><p></p><pre name="code" class="cpp">void CDlgNetInfo::OnDestroy()
{
CDialogEx::OnDestroy();
UpdateData(TRUE);
// TODO: Add your message handler code here
}
执行结果正确: