如何使dll中的窗体附在主项目的窗体上

Gzd2003 2009-01-28 01:12:57
我现在做了一个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的子窗体,可是上述代码达不到效果,请教各位大哥,我如何做才能实现呢?谢谢。
...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
三断笛 2009-02-14
  • 打赏
  • 举报
回复
是不是类似winamp的窗体跟随?
接着老马前辈的思路 画一个Timer(DLL中则用Withevents定义一个),在Timer事件中跟随就是了
Jinklang 2009-02-02
  • 打赏
  • 举报
回复
QQ:82347549
一言難進,聯繫我吧,有現成的OCX,應用即可!
pushregistration 2009-01-31
  • 打赏
  • 举报
回复
up
netsocket 2009-01-31
  • 打赏
  • 举报
回复
up
pushregistration 2009-01-28
  • 打赏
  • 举报
回复
友情up
netsocket 2009-01-28
  • 打赏
  • 举报
回复
友情up
嗷嗷叫的老马 2009-01-28
  • 打赏
  • 举报
回复
DLL的类里加一个:

public function ShowForm(ParentObj As Object)
f.show ,parentobj
end function

窗体调用里CALL API那一句改为:

call obj.showform me

匿.

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧