这个功能的实现只是通过使用SetParent来适时改变子窗体的容器。
VB中Parent的属性,VB的Parent指的是这个控制项(或window)是哪一个窗体的子窗体(父窗体被卸载时子窗体也跟着被卸载)这要和容器的概念区别开来。例如:
画一个Command button在Frame中,则Command Button的父窗体是Form,而容器是Frame,即Command Button
随着Frame移动,但Form结束时也随之卸载。
而SetParent是指容器的改变,而非VB中Parent属性的改变。下面就说如何实现:
1、先通过Mousedown事件来判断当前父窗体句柄并保存起来!
2、通过Mousemove事件来取得当前鼠标的位置的窗体句柄,并判断是否与Mousedown事件中的句柄一致,同时返回真与假两个值(真为一致假为不一致)!
3、根据Mousemove事件的判断结果来改变子窗体的容器。若返回值为真,则不改变窗体的容器。若为假则通过Setparent来改变当前子窗体的容器!
如此就可实现窗体的移进移出功能!