版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
【问题发现】
在我们写好一个子窗体的代码,想要运行检查是否有bug的时候,我们会发现如果单纯按照学生的代码来,写下下面的代码,在屏幕上是看不见子窗体的。
Private Sub register_Click()
frmregister.Show
End Sub
但其实子窗体是显示的了,只是它被父窗体的Picture控件给挡住了,也就是它显示在了picture控件的后面,这是因为picture控件和MDI子窗体是位于同一级上。
【解决办法】
这个时候我们需要调用一个API函数来解决这个问题。
1.首先我们打开外接程序管理器,在外接程序管理器中找到VB6.0 API Viewer,勾选如图所示的地方,点击确定
2. 打开外接程序,点击API浏览器,点击右上角的文件,找到加载文本文件,点击框起来的那个
3.找到SetParent这个函数,声明范围点击公有,然后点击复制,将声明代码复制到模块中。
4.在每个子窗体的click事件中写如下代码即可
Private Sub register_Click()
SetParent frmregister.hWnd, Picture1.hWnd
frmregister.Show
End Sub
Private Sub add_Click()
SetParent frmcharge.hWnd, Picture1.hWnd
frmcharge.Show
End Sub