a创建了无模式对话框b,在b创建的时候又创建了无模式对话框c,a如何访问c中的成员变量。
假设c中有一编辑框,我想在a中得到它的值,如何实现?

解决方案 »

  1.   

    c结束或者得到值的时候,发消息给A(比较直接)
    或者退出的时候由b保存,A用的时候在向B取
      

  2.   

    在a中直接得到c的指针,或者借助于b
      

  3.   

    a->m_b->m_c.(编辑框对应的变量)
      

  4.   

    //a中b的指针
    b * pb;
    //b中c的指针
    c * pc;
    //a创建b时有
    pb = new b;
    //b创建c时有
    pc = new c;
    //所以在a用c中的变量的时候
    pb->pc->m_edit;//m_edit是c中的变量
    //这样应该可以吧?
      

  5.   

    如果是不同的进程,比较麻烦。最省事的用socket!如果是同一进程,容易得多!
      

  6.   

    很容易。用一个static变量解决完事。
      

  7.   

    呵呵
    这样都不行的话
    创建一个全局变量c的指针
    c * g_pc;
    //在创建c的时候
    g_pc = new c;
    //在a中用c的变量的时候
    g_pc -> m_edit;//m_edit是c中的变量
    //虽然垃圾,但是屡试不爽。
    //应该行了吧?
      

  8.   

    我觉得lq100的方法是可行的,只不过b中声明c的指针的时候必须要在头文件中声明为共有变量,否则在用pb->pc->m_edit;语句时编译器并不认为pc是pb的成员变量,因为pc是被动态声明和初始化的。同时还要注意c中的编辑框是不是也被声明为共有变量了,如果不是的话,你就要声明一个公有变量,先将编辑框中的内容复制到这个公有变量后,再通过这个公有变量来获取编辑框中的内容。你再好好看看c++中private,protect,public三种类型变量的区别就会明白了。
      

  9.   

    小弟以为 a 直接 操作 c 不太好吧,程序会变杂乱的. 要么 在b里 定义一个函数 ,然后由这个函数来读取 c 编辑框的值