将MdiForm内的窗体移出MdiForm

     这个功能的实现只是通过使用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来改变当前子窗体的容器!

 

如此就可实现窗体的移进移出功能!

你可能感兴趣的:(command,vb,button)