非模式对话框A建立非模式对话框B,B建立非模式对话框C,ABC均不销毁。C建立非模式对话框D,D销毁时建立非模式对话框E,现在想通过E上的控件的操作访问并修改C对话框中的变量。
我在C创建D之后,将D中创建的C的指针与C的this对应,D就可以访问并修改C中的变量,这没有问题。但是现在我想通过E来访问C就有问题了。我思考了几种方案,但是自己不会实现,麻烦各位大虾指点一下!
1、C直接建立D和E,建立时隐藏E,将E中C的指针与C的this对应。
问题:不会在D销毁时显示E
2、在D创建E后,E直接创建C的指针,再对C进行操作。
问题:不会得到C的指针,是不是在h文件中直接创建一个就行?这个直接创建的指针能和原来的C建立联系吗?C和E没有任何关系。试了一下,编译通过,运行时出错。
3、我在C中将E设为友元,E直接创建C的指针,但是还是有问题。编译通过,运行时出错。
我在C创建D之后,将D中创建的C的指针与C的this对应,D就可以访问并修改C中的变量,这没有问题。但是现在我想通过E来访问C就有问题了。我思考了几种方案,但是自己不会实现,麻烦各位大虾指点一下!
1、C直接建立D和E,建立时隐藏E,将E中C的指针与C的this对应。
问题:不会在D销毁时显示E
2、在D创建E后,E直接创建C的指针,再对C进行操作。
问题:不会得到C的指针,是不是在h文件中直接创建一个就行?这个直接创建的指针能和原来的C建立联系吗?C和E没有任何关系。试了一下,编译通过,运行时出错。
3、我在C中将E设为友元,E直接创建C的指针,但是还是有问题。编译通过,运行时出错。
在D中创建E时:dlgE e;
e.m_pdlgC = m_pdlgC; //m_pdlgC是D中定义的指向C的指针
e. .....
希望能再解释一下这方面的运行机制!必需要这样一步一步的传指针吗?有没有什么更好的方法?
-----------------------
指针必须指向实例后才能使用