前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB 子窗体被PictureBox控件挡住无法显示

VB 子窗体被PictureBox控件挡住无法显示

作者头像
令仔很忙
发布2018-09-14 15:16:59
1.3K0
发布2018-09-14 15:16:59
举报
文章被收录于专栏:令仔很忙令仔很忙

1、问题描述 

   VB做机房收费系统的时候,用的MDI主窗体,在主窗体上加了一个Picturebox控件,运行的时候,点了子窗体,但是却没有出现,后来才发现,子窗体被Picturebox控件给当在了后面。

2、问题原因

   在MDI程序中,子窗体实际位于MDIClient里,就是说,子窗体的父窗体是MDIClient,而PictureBox和MDIClient属于同一级的

   层次结构

   ThunderMDIForm-MDIForm1

   --MDIClient

   ---ThunderFormDC-Form1  子窗体1

   ---ThunderFormDC-Form2  子窗体2

   --ThunderPictureBoxDC   MDI的PictureBox

3、解决办法

  用到的函数——SetParent函数

Private Declare FunctionSetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParentAs Long) As Long

   函数功能:

   该函数改变某个子窗口的父窗口。

   参数:

   hWndChild:子窗口句柄。hWndNewParent:新的父窗口句柄。如果该参数是NULL,则桌面窗口就成为新的父窗口。

   返回值:

   如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。

代码如下:

    Private Sub AboutMenu_Click()         SetParent frmAbout.hWnd, frmMain.hWnd         frmAbout.Show     End Sub

    需要注意的一点是,frmMain窗体不可以是MDI窗体,要用一般的Form窗体,否则的话,当你运行的时候,它会提醒你——“实时错误426”,只允许一个MDI窗体。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年11月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、问题描述 
  • 2、问题原因
  • 3、解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档