是这样的。我要做一个软件,主窗体是MDI窗体。我想做若干个ActiveX Dll分别用于独立的模块,DLL中包含了一些窗体,有的是MDI子窗体。但DLL中不包含MDI主窗体,我在主程序中创建了DLL的实例的时候想显示其中的MDI子窗体,这时系统就出错了,说是没有可用的MDI主窗体。
  我试过用Setparent这个API,但效果不好,这样出来的子窗体会把主窗体的一些控件盖掉,因为在DLL中窗体并不是定义成MDI子窗体的。
  我想请教的是有没有办法能在DLL中设置窗体的MDIChild属性为True,同时让在外部的Exe能调用这个窗体。

解决方案 »

  1.   

    不行,在VB中必须有MDI主,才能将其他的MDIChild属性设置,DLL是进程内部件,可以通过很多外部运行程序引用,但它本身也是一个独立的程序,你可以考虑将你的DLL分别做成类模块,类模块中的窗体和MDI在一个工程内,这样就可以满足你的面向对象,和MDI开发
      

  2.   

    你试着把dll中的窗体的属性(MDIChild)=True