MFC父窗口怎么调用子窗口的函数或变量?

动感小麦兜 2017-02-23 05:37:44
在子窗口使用list control控件关联了一个变量m_List,现在需要在主对话框里调用这个变量,并赋值m_List.SetItemText(0, 3, _T("7"));试了很多方法,有的编译正常,但运行就报错。实在无奈,求大神指点。
...全文
1224 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39791572 2018-09-06
  • 打赏
  • 举报
回复 1
1,父窗口头文件定义一个子类的变量,如CChildDlg mDlg;
2, 父窗口头文件包含子窗口头文件名,如#include "ChildDlg.h";
3,父窗口CPP文件中,在需要调用的地方用,mDlg.m_List.XXX
worldy 2017-02-26
  • 打赏
  • 举报
回复
子窗口的m_List定义为public 父窗口通过如下语法调用 子窗口名称.m_List.xxxxx函数名(参数)
xiaohuh421 2017-02-24
  • 打赏
  • 举报
回复
正规的做法都是子窗口提供一个操作list的函数, 然后父窗口类中调用这个函数. 一般这样的程序, 在父窗口类对象中, 都保存得到子窗口类对象的指针. 就好比你在你的窗口中操作list控件一样. list控件也是一个窗口.
副组长 2017-02-24
  • 打赏
  • 举报
回复
好像是这东西直接在外面用有点说道。 其实你可以在子窗口类里面专门写一个公有的存取函数,当主窗口需要存取这个控件时调用这个函数来完成。这样不就是能防止在类外控制这个控件了。
schlafenhamster 2017-02-23
  • 打赏
  • 举报
回复
先要 找到子窗口,然后 子窗口。m_List、
动感小麦兜 2017-02-23
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
必须 先 Insert m_DataList.InsertColumn(0,"Data",LVCFMT_LEFT,120); m_DataList.InsertColumn(1,"Data1",LVCFMT_CENTER,120); m_DataList.InsertItem(0,"0"); m_DataList.SetItemText(0, 2, _T("7"));
这个我知道,主要是list控件是在子窗口定义的,现在需要在父窗口调用。
schlafenhamster 2017-02-23
  • 打赏
  • 举报
回复
必须 先 Insert m_DataList.InsertColumn(0,"Data",LVCFMT_LEFT,120); m_DataList.InsertColumn(1,"Data1",LVCFMT_CENTER,120); m_DataList.InsertItem(0,"0"); m_DataList.SetItemText(0, 2, _T("7"));

16,472

社区成员

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

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

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