将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来改变当前子窗体的容器!

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

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 --------------------------...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, t...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integ...