MDI子窗体如何显示在picture控件的前面
2013-09-28 21:44
267 查看
在敲机房收费系统的时候遇到了一点小麻烦,就是在MDI主窗体上添加容器控件picture后,导致MDI子窗体无法显示。其实不是无法显示,只是被picture控件挡住了,不明其所以然。
通过查资料终于明白了其中的原因:在MDI窗体中,子窗体实际上位于MDIClient里,即子窗体的父窗体就是MDIClient,而防止在MDI中的picture控件和MDIClient是同一级别的,由于层次结构,所以无法使子窗体显示在picture控件的上面。
如果想要实现这个功能,只能破坏Form的消息循环,可以使用如下函数:Private
Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
该函数功能:该函数改变某个子窗口的父窗口。
返回值:如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。
在事件中添加如下代码就可以了:
SetParent Form1.hWnd, MDIForm1.hWnd
通过查资料终于明白了其中的原因:在MDI窗体中,子窗体实际上位于MDIClient里,即子窗体的父窗体就是MDIClient,而防止在MDI中的picture控件和MDIClient是同一级别的,由于层次结构,所以无法使子窗体显示在picture控件的上面。
如果想要实现这个功能,只能破坏Form的消息循环,可以使用如下函数:Private
Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
该函数功能:该函数改变某个子窗口的父窗口。
返回值:如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。
在事件中添加如下代码就可以了:
SetParent Form1.hWnd, MDIForm1.hWnd
相关文章推荐
- VB.NET章鱼哥出品—如何解决MDI子窗体被父窗体中的控件覆盖的问题
- 黄聪:C#如何让窗体永远在窗体最前面显示
- c#如何将子窗体显示到父窗体的容器(panel)控件中
- MDI窗体与子窗体的显示问题--(如何让主窗体是被控件挡住的子窗体显示)
- OPENCV如何把视频显示到MFC的picture控件上
- OpenCV如何把图像显示到MFC的picture控件上
- [控件]DockPanel里如何在一个子窗体里打开另一个子窗体 显示在主窗体中
- 如何把图像显示到picture控件中
- 如何把图像显示到picture控件中
- 如何给DateTimePicker这个控件在窗体显示时的值为空?
- OpenCV如何把图像显示到MFC的picture控件上
- c#开发中mdi子窗体如何调用父窗体中控件
- c#开发中,mdi子窗体如何调用父窗体中控件
- 如何在XAF中显示自定义窗体和控件
- OPENCV如何把图片显示到MFC的picture控件上
- 如何让窗体总在桌面最前面显示
- c#如何将子窗体显示到父窗体的容器(panel)控件中
- 如何:使用 Windows 窗体 TextBox 控件创建密码文本框 .NET Framework 2.0 其他版本 密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符。 创
- 如何让form2中的数据源,显示在form1的dataGridView控件中呢????
- angular ui-bootstrap日期控件如何显示成中文