南子 发表于 2003-2-14 15:48:00

请问如何让无模式UserForm象属性栏和工具栏一样可停靠dock?

mccad 发表于 2003-2-14 21:53:00

看来要用到的属性及事件不少

对于窗体,使用的事件为UserForm_Layout()

如以下语句可以使窗体不会跑到屏幕的外面:
Private Sub UserForm_Layout()
If Me.Left < ThisDrawing.Application.WindowLeft Then
   Me.Left = ThisDrawing.Application.WindowLeft
End If
If Me.top < ThisDrawing.Application.WindowTop Then
    Me.top = ThisDrawing.Application.WindowTop
End If

If Me.top > ThisDrawing.Application.WindowTop + ThisDrawing.Application.Height - Me.Height Then
Me.top = ThisDrawing.Application.WindowTop + ThisDrawing.Application.Height - Me.Height
End If
If Me.Left > ThisDrawing.Application.WindowLeft + ThisDrawing.Application.Width - Me.Width Then
Me.Left = ThisDrawing.Application.WindowLeft + ThisDrawing.Application.Width - Me.Width
End If
Debug.Print "窗口距左侧距离" & Me.Left
Debug.Print "窗口距顶部距离" & Me.top
End Sub
可惜调来调去还是有问题,可能窗体中使用的单位与应用程序使用的单位不同所致,但又不知怎么转换(大家想想办法)。

另外,应用程序的WindowMovedOrResized(HWNDFrame, Moved)事件也必须使用,不然到时主程序窗口变了,你的窗体还停留在原来的位置是不对的。

comejava 发表于 2005-1-26 11:01:00

好东西,可是想要vc的,呵呵

my_computer 发表于 2005-1-27 08:29:00

想法不错支持。
页: [1]
查看完整版本: 请问如何让无模式UserForm象属性栏和工具栏一样可停靠dock?