MFC 非模态对话框 第二次打开后 控件默认值显示问题

liangyuegang 2013-11-26 10:14:00
问题描述:
在CMainFrame类中 定义 对话框CUploadDlg * m_uldlg;
点击一菜单后 显示非模态对话框
m_uldlg=new CUploadDlg;
m_uldlg->Create(IDD_DIALOG5,this);
m_uldlg->ShowWindow(SW_SHOW);
在CUploadDlg对话框类里所做处理有:
//构造函数 ,变量关联
CUploadDlg::CUploadDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUploadDlg::IDD, pParent)
, m_fname(_T(""))
, m_scale(_T(""))
, m_cor_x(_T(""))
, m_cor_y(_T(""))
, m_prjname(_T(""))
, m_authorname(_T(""))
, m_csvfname(_T(""))
{

}
void CUploadDlg::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog::PostNcDestroy();
delete this;
}
void CUploadDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
DestroyWindow();
//CDialog::OnOK();
}
具体问题:现在做文件上传,第一次打开该对话框后,对话框上的各控件默认值显示正确,如构造函数中所给初值,当对话框关闭后第二次打开时,各控件初始值显示为上一次打开时 变量fname的值(如图),我在CUploadDlg对话框的OnInitDialog()函数里,加上赋值语句,或在m_uldlg->ShowWindow(SW_SHOW);之前加上赋值语句都木有解决问题,很是苦恼。
m_fname=_T("");
m_scale=_T("");
m_cor_x=m_cor_y=_T("");
m_prjname=_T("");
m_authorname=_T("");
m_csvfname=_T("");


请各位高手给点指点,怎么样才能使对话框二次打开后显示的默认值与所给初始值一致。
...全文
354 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
凌乱哥 2013-11-26
  • 打赏
  • 举报
回复
最易懂的办法,每次成功上传了或者对话框关闭了就把当前的值写到.ini里去,下次就读取并显示,读不到就显示成空
liangyuegang 2013-11-26
  • 打赏
  • 举报
回复
引用 1 楼 cullionboy 的回复:
可不可以每次在对话框show之前先清空控件里显示的
我在show之前清空显示 是什么意思,我在显示之前 都重新给这些变量赋值,然后UPDATEDATA(FALSE)也木有变化
LazyDunk 2013-11-26
  • 打赏
  • 举报
回复
可不可以每次在对话框show之前先清空控件里显示的
liangyuegang 2013-11-26
  • 打赏
  • 举报
回复
引用 5 楼 shen_wei 的回复:
对话框关闭时,记得清空你的赋值。。
那 清空处理,应该放在哪一步做比较合适呢?
liangyuegang 2013-11-26
  • 打赏
  • 举报
回复
引用 4 楼 jiangsheng 的回复:
设置完数据之后要调用DoDataExchange(FALSE)。这个在基类的OnInitDialog里有调用,估计你的赋值语句写到基类的OnInitDialog之后去了。
调用DoDataExchange(FALSE) 就是调用m_uldlg->UpdateData(FALSE)吗
liangyuegang 2013-11-26
  • 打赏
  • 举报
回复
引用 3 楼 dingxz105090 的回复:
最易懂的办法,每次成功上传了或者对话框关闭了就把当前的值写到.ini里去,下次就读取并显示,读不到就显示成空
多谢回复,我会试一下的,那请问还有没有别的办法
shen_wei 2013-11-26
  • 打赏
  • 举报
回复
对话框关闭时,记得清空你的赋值。。
蒋晟 2013-11-26
  • 打赏
  • 举报
回复
设置完数据之后要调用DoDataExchange(FALSE)。这个在基类的OnInitDialog里有调用,估计你的赋值语句写到基类的OnInitDialog之后去了。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧