| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 288 人关注过本帖
标题:窗体显示的问题
只看楼主 加入收藏
chen3bing
Rank: 2
等 级:论坛游民
帖 子:199
专家分:99
注 册:2008-11-12
结帖率:87.72%
  已结贴   问题点数:10  回复次数:2   
窗体显示的问题
有两个窗体,一个窗体嵌在另一个窗体的前面。
Form2.Show vbModeless, Me
ControlPanel.Show vbModeless, Form2
就是ControlPanel嵌在Form2里面,ControlPanel窗体没有最小化按钮
这样做了以后,点击最小化按钮,form2最小化了,可是ControlPanel
窗体没有最小化。
可是如果改成
Form2.Show vbModeless, Me
ControlPanel.Show vbModeless, Me
点击Form2里的按钮,ControlPanel就消失了,空了一块。
请问高手,如何才能解决这个问题?谢谢!
2018-12-18 15:30
yingshu
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:37
专家分:148
注 册:2018-7-24
  得分:5 
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Command1_Click()
    SetParent Form3.hWnd, Form2.hWnd
    Form3.Show
End Sub
将窗体设置为父子关系
2018-12-18 17:48
ZHRXJR
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:86
帖 子:860
专家分:4510
注 册:2016-5-10
  得分:5 
   Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
函数参数说明:hWndChild  子窗口(控件)的句柄。hWndNewParent hWndChild 子窗口的新的父窗口(容器)。返回值:类型为 Long(长整型)。如果调用成功,返回前一个父窗口(容器)的句柄。
可用这个函数在运行期间将 VB 控件置入容器内部(例如:将一个窗体放入另一个窗体中,或者将控件从一个容器控件移至另一个容器控件中。)

程序代码:

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long   'API 的 SetParent 函数

Private Sub Command1_Click()   '窗体 Form1 的按钮单击事件
    Dim CB As Long
    CB = SetParent(Form3.hWnd, Form2.hWnd)    '取得函数的返回值。
    If CB > 0 Then   '函数返回值大于 0,说明函数调用成功。
    MsgBox "已经设置主窗体。"
    Unload Me   '关闭并清除 Form1 窗体
    Form2.Show    '打开刚刚设置的主窗体
    Form3.Show    '打开子窗体
    Else
    MsgBox "不能设置主窗体。"
    End If
End Sub

点击 Form1 中的 Command1 按钮完全没有问题,窗体 Form3 已经置于窗体 Form2 中。

[此贴子已经被作者于2018-12-20 12:56编辑过]

2018-12-20 12:46







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069369 second(s), 9 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved