其实一直在好奇一个问题,机房收费系统是怎么做到MDI窗体中子窗体是如何在其内最小化的??还有如何做到能让子窗体在MDI窗体前显示??这些问题终于在今天明了了!很开心,无比激动,就像发现了新大陆一样
效果如下:
如何做到MDI窗体中子窗体在其内最小化
后来查了一下资料,原来是引用了一个API函数:SetParent。
首先要在模块里面声明这个函数:Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long。
后来又查了一下资料,改为了:SetParent frmRegister.hwnd, Picture1.hwnd。然后 问题就圆满解决了。下面了解了一下SetParent这个API函数吧。
函数功能:改变某个子窗体的父窗口。
函数模型:SetParent hWndChild.hwnd, hWndNewParent.hwnd 。hWndChild是子窗口的句柄。hWndNewParent是新父窗口的句柄。
返回值:为子窗体的原父窗口句柄。
在子窗体显示时,还出现子窗体只显示一小块,但是可以下拉变大的问题
这个问题,其实只需要把窗体的Borderstyle属性由2-Sizable改为1-Fixed Single
2-Sizable:是双线边框,可以改变窗口大小。
1-Fixed Single:是单线边框,不可以改变窗口大小。
3-Fixed Double:是双线边框,不可以改变窗体大小
4-Fixed Tool Window:窗体外观与工具条相似。有关闭按钮 ,不可改变窗口大小。 5-Sizable Tool Window:窗体外观与工具条相似有关闭按钮,可以改变窗口大小。
通过这些知识,发现自己需要发现的知识太多了,学无止境。。。以后要好好积累。