在MDI窗体调用子窗体时怎样使不被MDI窗体上的图片挡住
来源:互联网 发布:一见如故by顾知何下载 编辑:程序博客网 时间:2024/06/11 17:01
最近大家都在忙着敲机房收费系统,我也一样。前几天发现了一个问题,在点击主窗体上的按钮调用子窗体时,子窗体不显示。开始时以为是我把子窗体的名字敲错了导致无法调用,后来在仔细核对下排除了这种可能。那么为什么和敲学生时一样的步骤现在却出现了这个问题呢?通过在网上查和问同学发现很多同学都遇到了这个问题,也有同学已经解决了。这里就在来说说如何解决,权当强调了吧。
2.. 我们可以通过添加代码 Me.WindowState = 0
首先出现这个问题是因为我们的MDI窗体上添加的Picture 控件。而并不是像我开始时想的是敲错名字无法调用那样,事实上我们的子窗体已经被调用了只是被Picture挡住了而已。原因已经找到了,那么怎样才能不让Picture挡住子窗体呢。经过查找发现了这样一句代码: Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long 可是这是什么意思呢,原来这是一段在模块里声明API函数的代码,我们要声明的就是SetParent函数。而SetParent这个API函数的功能就是该函数改变某个子窗口的父窗口。(详见百度百科:http://baike.baidu.com/view/1080343.htm?fr=aladdin)。现整理如下表:
SetParent
函数原型:HWND SetParent(HWND hWndChild,HWND hWndNewParent)
了解了SetParent函数后,我们言归正传来解决我们上面提到的问题。
首先在模块中声明SetParent函数:
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
其次在MDI窗体的菜单中单击想要调用的子窗体,如图:
点进入click事件后添加如下格式的代码,即可。
(格式为:SetParent 想要调用的子窗体名称 .hWnd,MDI窗体名称.hWnd)
添加了如上代码后会发现又有问题了,那就是显示的子窗体是一个和MDI主窗体一样大的一个边框,如下图
只有把他往下拉一下才可以看到就只是一个边框,如果不注意的话就会找不到。而且要点击最大化才可以看全子窗体
解决方法:1.将每个子窗体的borderstyle = 1 即可。
2.. 我们可以通过添加代码 Me.WindowState = 0
Me.Width = 数字
Me.Height= 数字
在将要调用的子窗体的maxbutton 和 minbutton设置成ture 即可(来根据自己的需要确定窗体大小)。
注:VB实现自身窗口最大化、最小化显示,用Me.WindowState来实现。关于WindowState的几种状态:WindowState = 0指正常状态,WindowState = 1是指窗口最小化,WindowState = 2是指窗口最大化显示,用此可实现窗口标题栏右下角最小化、最大化按钮点击后的效果。
虽然这只是一个小小的知识点,但我相信可以积少成多厚积薄发。
0 0
- 在MDI窗体调用子窗体时怎样使不被MDI窗体上的图片挡住
- 子窗体显示在MDI窗体上
- 在MDI窗体中将最小化的子窗体放在主窗体的状态栏上
- C# MDI编程中子窗体调用子窗体的问题
- C# MDI 子窗体被父窗体控件挡住
- MDI的子窗体问题
- 关闭MDI窗体子窗体
- MDI窗体的优化---上
- 新建MDI子窗体
- MDI子窗体
- MDI子窗体应用程序
- C# 一个MDI窗体怎样在加载子窗体时,使子窗体为最大化(转)
- toolStripContainer在mdi窗体中遮蔽mdi子窗体的解决办法
- MDI窗体
- 在Dll内封装MDI子窗体
- 在CMainFrame中创建MDI子窗体
- MDI窗体中打开子窗体时 子窗体的位置固定方法 十分有作用
- winform 在mdi窗口重绘界面时,mdi挡住主窗体,导致鼠标拖动缩放窗体大小失效的解决方法随笔
- poj1113-Wall (国王的凸包)
- Could not create the view: An unexpected exception was thrown. 电脑突然断电,myeclipse非正常关闭,出现错误
- winsock下与linux下setsockopt(SO_SNDTIMEO,SO_RCVTIMEO)的区别
- kinect C#编程学习笔记二
- phpCMS问题整理
- 在MDI窗体调用子窗体时怎样使不被MDI窗体上的图片挡住
- 不要让未来的你,讨厌现在的自己
- 看操作系统虚拟化原理总结篇——VMCS详解
- /bin/rm: cannot remove `libtoolT’: No such file or directory 解决方案
- C 内存管理学习笔记
- UVa12100 - Printer Queue
- Entity FrameWork初始化数据库的四种策略
- 计算几何@_@不规则四边形求法
- 自己创业开发游戏是我人生经历的最困难时刻