当前位置: 代码迷 >> VC >> 请问一个C++/CLI调用窗口的有关问题
  详细解决方案

请问一个C++/CLI调用窗口的有关问题

热度:3378   发布时间:2013-02-25 00:00:00.0
请教一个C++/CLI调用窗口的问题
我用C++/CLI建了一个工程,在Form1里面添加了一个activeX控件,现在我想在非托管的代码里面能够直接调用Form1这个容器里面的控件的方法,有没有什么办法可以实现?非托管的代码不在同一个命名空间,也不在同一个文件中.

以前用MFC很方便就实现了,因为MFC支持全局的指针.但Form^不支持全局的.

查了好久的资料,觉得可能用GCHandle来实现或许有可能.尝试了很多次,均不能成功实现.就上来请教了.
我自学C++以及C++/CLI,请各位过来人指点一二.感激不尽.

------解决方案--------------------------------------------------------
引用Form1的命名空间,并将Activex控件设为public,即可访问。
------解决方案--------------------------------------------------------
static Form1^ f1;
.....

------解决方案--------------------------------------------------------
探讨

这种做法还是不行,因为Application::Run(gcnew Form1());这个语句不支持创建一个静态对象.
thanks.

------解决方案--------------------------------------------------------
还有别的方式,记录那个窗口的handler
intptr h = form1.handler
把它传个外部
在别的函数里通过

Form1::FromHandle(h); 获取那个窗体
总之很多,不要把思维局限
  相关解决方案