请教:MFC 主窗口引用新建窗口的变量后,新建窗口的变量无显示

weixin_42107206 2020-09-29 12:57:32
主窗口cpp下,
CDiaglog1 m_temp;
m_temp.新建窗口变量.Format(_T("%s"),str);
UpdateData(false);
新建窗口的变量无显示,调试有值正常。
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42107206 2020-10-02
  • 打赏
  • 举报
回复
引用 9 楼 zgl7903 的回复:
[quote=引用 8 楼 weixin_42107206 的回复:][quote=引用 6 楼 zgl7903 的回复:]主窗口中用子窗口的窗口变量

if(pChild)
{
  pChild->UpdateData(true);
  int a = pChild->mxx;

  pChild->mxx = yyyy;
  pChild->UpdateData(false);
}
请问下,pChild是子窗口的类吗?如果是,我这样写pChild->子窗口控件变量,编译不报错,但一运行就停止了。[/quote] UpdateData 更新窗体内容, 必须是在窗口有效的情况下进行 建议下阅读下 Working with Dialog Boxes in MFC [/quote] 完美解决。结贴。
zgl7903 2020-10-02
  • 打赏
  • 举报
回复
引用 8 楼 weixin_42107206 的回复:
[quote=引用 6 楼 zgl7903 的回复:]主窗口中用子窗口的窗口变量

if(pChild)
{
pChild->UpdateData(true);
int a = pChild->mxx;

pChild->mxx = yyyy;
pChild->UpdateData(false);
}


请问下,pChild是子窗口的类吗?如果是,我这样写pChild->子窗口控件变量,编译不报错,但一运行就停止了。[/quote]

UpdateData 更新窗体内容, 必须是在窗口有效的情况下进行
建议下阅读下 Working with Dialog Boxes in MFC

weixin_42107206 2020-10-01
  • 打赏
  • 举报
回复
引用 6 楼 zgl7903 的回复:
主窗口中用子窗口的窗口变量

if(pChild)
{
pChild->UpdateData(true);
int a = pChild->mxx;

pChild->mxx = yyyy;
pChild->UpdateData(false);
}


请问下,pChild是子窗口的类吗?如果是,我这样写pChild->子窗口控件变量,编译不报错,但一运行就停止了。
weixin_42107206 2020-10-01
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
不过我在子窗口引用主窗口的变量?
这么说你已经取得 主窗口 了 (GetParent) ?
函数 在 主窗口 就 不必 再取 主窗口了 (this->变量)就可以了,若变量在子窗口 就是
GetDialogItem。


变量在子窗口,GetDlgItem(IDD_DIALOG1)不能取得label控件的变量。
zgl7903 2020-10-01
  • 打赏
  • 举报
回复
主窗口中用子窗口的窗口变量

if(pChild)
{
pChild->UpdateData(true);
int a = pChild->mxx;

pChild->mxx = yyyy;
pChild->UpdateData(false);
}


schlafenhamster 2020-10-01
  • 打赏
  • 举报
回复
不过我在子窗口引用主窗口的变量?
这么说你已经取得 主窗口 了 (GetParent) ?
函数 在 主窗口 就 不必 再取 主窗口了 (this->变量)就可以了,若变量在子窗口 就是
GetDialogItem。
weixin_42107206 2020-09-30
  • 打赏
  • 举报
回复
引用 3 楼 schlafenhamster 的回复:
CDiaglog1 m_temp; 这是 构造一个新的 CDiaglog1 与 原来的 CDiaglog1 毫无关系 ! 用 AfxGetMainWnd CWnd* AfxGetMainWnd( ); 取得 原 CDiaglog1 *pDlg
CWnd* AfxGetMainWnd( );不会用。不过我在子窗口引用主窗口的变量,然后在子窗口显示成功了。我还是想在主窗口引用子窗口的变量,通过主窗口的操作来显示在子窗口中。麻烦再指点下。谢谢。
schlafenhamster 2020-09-30
  • 打赏
  • 举报
回复
CDiaglog1 m_temp; 这是 构造一个新的 CDiaglog1 与 原来的 CDiaglog1 毫无关系 !

AfxGetMainWnd
CWnd* AfxGetMainWnd( );

取得 原 CDiaglog1 *pDlg
weixin_42107206 2020-09-29
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
CDiaglog1 m_temp; 这是 构造 函数,还没窗口 , 要 create 或 domodule

窗口在菜单里实现了。CDiaglog1 *pDlg = new CDiaglog1;
pDlg->Create(IDD_DIALOG1);
pDlg->ShowWindow(SW_SHOW);
现在的问题是,主窗口的cpp中更新新建窗口的变量后,新建窗口的变量值有变化,但没有显示。。。
schlafenhamster 2020-09-29
  • 打赏
  • 举报
回复
CDiaglog1 m_temp; 这是 构造 函数,还没窗口 , 要 create 或 domodule

16,472

社区成员

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

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

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