步骤来重现行为
1. VisualBasic 中创建新的标准 EXE 项目。 默认情况下创建 Form 1。
2. 在 项目 菜单上, 单击 Form 1 删除 。
3. 在 项目 菜单上, 单击 添加 MDI 窗体 。 MDIForm1 添加到 Project 1。
4. 在 项目 菜单上, 单击 Project 1 属性 , 并设置到 MDIForm1 Startup 对象。
5. 添加下列代码后面 MDIForm1:Private Sub MDIForm_Click()
Dim x As Class1
Set x = New Class1
x.ShowChildForm MDIForm1.hWnd
End Sub
6. 在 文件 菜单上, 单击 AddProject@@@ 。 要创建项目组, 添加一个新的 ActiveXDLL 项目。 默认情况下创建 Class 1。
7. 以下代码添加到 Class 1:
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetParent Lib "user32" _
(ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Function ShowChildForm(ByVal hWndMDIForm As Long)
Dim Ret As Long
Dim CurrentStyle As Long
Ret = SetParent(Form1.hwnd, hWndMDIForm)
CurrentStyle = GetWindowLong(Form1.hwnd, GWL_STYLE)
Ret = SetWindowLong(Form1.hwnd, GWL_STYLE, CurrentStyle Or WS_POPUP)
Form1.Show
End Function