如题,我制作了一个ActiveX dll,里面有一个Form1窗体,我在该dll的Class1中定义了
Public Sub CreateMySelf(father As Long)
' Set fMainForm = New frmMain
' fMainForm.Show
frmMain.Show , father
End Sub然后建立了一个Mdi程序,里面的菜单中添加了如下代码:
Private Sub mnu_File_Child_Click()
Dim frm As Object
Set frm = CreateObject("ku.class1")
frm.CreateMySelf Me.hWnd
End Sub在运行该菜单指令时报错:
“没有MDI窗体可用于加载” frm.CreateMySelf Me.hWnd请问该如何实现该功能?
Public Sub CreateMySelf(father As Long)
' Set fMainForm = New frmMain
' fMainForm.Show
frmMain.Show , father
End Sub然后建立了一个Mdi程序,里面的菜单中添加了如下代码:
Private Sub mnu_File_Child_Click()
Dim frm As Object
Set frm = CreateObject("ku.class1")
frm.CreateMySelf Me.hWnd
End Sub在运行该菜单指令时报错:
“没有MDI窗体可用于加载” frm.CreateMySelf Me.hWnd请问该如何实现该功能?
加载一个Dll中的窗体到EXE的MDI感觉不太容易,反过来我们可以考虑在Dll中来解决,在Dll中接收一个对象参数,为Mid窗体Hwnd,再用 SetParent 这是个Api函数 ---- MyClass ----
public sub ShowForm(ParentHwnd as long) SetParent DllForm.Hwnd, ParentHwnd
DllForm.showend sub这样对ActiveX Dll有了限制,只能是用VB开发,而且要注册释放Dll Form但请各位解释一下什么叫做“注册释放Dll Form”。继续期待。请cdknet(cdksoft) 进来,我会给分!谢谢了!
有什么方法可以解决这个问题吗?