怎么使dll中的窗体附在主项目的窗体上
如何使dll中的窗体附在主项目的窗体上
我现在做了一个vb6.0的标准exe项目project1,在project1中增加了一个form1。form1的代码如下:
Option Explicit
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Sub Form_Load()
Dim obj
Set obj = CreateObject("Project2.clsChild1")
MsgBox obj.TestProp
Call SetParent(obj.ChildForm.hWnd, Me.hWnd)
End Sub
然后添加了一个VB6.0的ActiveX Dll项目project2,与project1组成项目组。project2中添加了一个窗体frmChild1和clsChild1,clsChild1的代码如下:
Option Explicit
Private f As frmChild1
Private a As Integer
Private Sub Class_Initialize()
a = 3
Set f = New frmChild1
f.Show
End Sub
Public Property Get ChiledForm() As Object
ChiledForm = f
End Property
Public Property Get TestProp() As Integer
TestProp = a
End Property
Private Sub Class_Terminate()
Set f = Nothing
End Sub
我的目的是将dll中的frmChild1作为标准exe项目project1中form1的子窗体,可是上述代码达不到效果,请教各位大哥,我如何做才能实现呢?谢谢。
------解决方案--------------------
DLL的类里加一个:
public function ShowForm(ParentObj As Object)
f.show ,parentobj
end function
窗体调用里CALL API那一句改为:
call obj.showform me
匿.
------解决方案--------------------
友情up
------解决方案--------------------
友情up
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
QQ:82347549
一言難進,聯繫我吧,有現成的OCX,應用即可!
------解决方案--------------------
是不是类似winamp的窗体跟随?
接着老马前辈的思路 画一个Timer(DLL中则用Withevents定义一个),在Timer事件中跟随就是了
我现在做了一个vb6.0的标准exe项目project1,在project1中增加了一个form1。form1的代码如下:
Option Explicit
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Sub Form_Load()
Dim obj
Set obj = CreateObject("Project2.clsChild1")
MsgBox obj.TestProp
Call SetParent(obj.ChildForm.hWnd, Me.hWnd)
End Sub
然后添加了一个VB6.0的ActiveX Dll项目project2,与project1组成项目组。project2中添加了一个窗体frmChild1和clsChild1,clsChild1的代码如下:
Option Explicit
Private f As frmChild1
Private a As Integer
Private Sub Class_Initialize()
a = 3
Set f = New frmChild1
f.Show
End Sub
Public Property Get ChiledForm() As Object
ChiledForm = f
End Property
Public Property Get TestProp() As Integer
TestProp = a
End Property
Private Sub Class_Terminate()
Set f = Nothing
End Sub
我的目的是将dll中的frmChild1作为标准exe项目project1中form1的子窗体,可是上述代码达不到效果,请教各位大哥,我如何做才能实现呢?谢谢。
------解决方案--------------------
DLL的类里加一个:
public function ShowForm(ParentObj As Object)
f.show ,parentobj
end function
窗体调用里CALL API那一句改为:
call obj.showform me
匿.
------解决方案--------------------
友情up
------解决方案--------------------
友情up
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
QQ:82347549
一言難進,聯繫我吧,有現成的OCX,應用即可!
------解决方案--------------------
是不是类似winamp的窗体跟随?
接着老马前辈的思路 画一个Timer(DLL中则用Withevents定义一个),在Timer事件中跟随就是了