VB在拖拉窗体时,我想要显示窗体内容。
在拖拉窗体时,我想要显示窗体内容。每次拉伸都是只有线条。有什么办法可以显示窗体内容的吗?请提供源码,谢谢!是我没说清楚吧!我不是要移动窗体。而是要改变窗体的大小,拖拉窗体...
在拖拉窗体时,我想要显示窗体内容。
每次拉伸都是只有线条。
有什么办法可以显示窗体内容的吗?
请提供源码,谢谢!
是我没说清楚吧!我不是要移动窗体。
而是要改变窗体的大小,拖拉窗体边框改变窗体大小时显示窗体内容。 展开
每次拉伸都是只有线条。
有什么办法可以显示窗体内容的吗?
请提供源码,谢谢!
是我没说清楚吧!我不是要移动窗体。
而是要改变窗体的大小,拖拉窗体边框改变窗体大小时显示窗体内容。 展开
3个回答
展开全部
窗体为无标题栏窗体可以用以下方法实现(因为窗体没有边框,做好用按钮等做unload me命令):
提前设置:BorderStyle = 0
'取得鼠标坐标
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim shu As POINTAPI '用来记录按下鼠标时的坐标
Dim anxia As Boolean '用来判断鼠标有没有放开
Private Sub Form_Load()
anxia = False '鼠标没有被按下
Me.ScaleMode = 3 '将窗体坐标系设置为像素
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '按下鼠标左键时,记录鼠标当前位置,减去鼠标在窗体的位置就是窗体的边界
If Button = 1 Then '判断是否左键
anxia = True '将此变量设为真,在鼠标左键放开时设为false
Do While anxia '判断左键是否放开
GetCursorPos shu '取得鼠标当前坐标
Me.Move Me.ScaleY(shu.X - X, 3, 1), Me.ScaleY(shu.Y - Y, 3, 1) '将移动窗体,因为move用的坐标系是缇,而GetCursorPos取得的是像素,所以用ScaleY需要转换
DoEvents '将控制权交给系统,否则接收不到MouseUp事件
Loop
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
anxia = False '左键放开
End If
End Sub
提前设置:BorderStyle = 0
'取得鼠标坐标
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim shu As POINTAPI '用来记录按下鼠标时的坐标
Dim anxia As Boolean '用来判断鼠标有没有放开
Private Sub Form_Load()
anxia = False '鼠标没有被按下
Me.ScaleMode = 3 '将窗体坐标系设置为像素
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '按下鼠标左键时,记录鼠标当前位置,减去鼠标在窗体的位置就是窗体的边界
If Button = 1 Then '判断是否左键
anxia = True '将此变量设为真,在鼠标左键放开时设为false
Do While anxia '判断左键是否放开
GetCursorPos shu '取得鼠标当前坐标
Me.Move Me.ScaleY(shu.X - X, 3, 1), Me.ScaleY(shu.Y - Y, 3, 1) '将移动窗体,因为move用的坐标系是缇,而GetCursorPos取得的是像素,所以用ScaleY需要转换
DoEvents '将控制权交给系统,否则接收不到MouseUp事件
Loop
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
anxia = False '左键放开
End If
End Sub
追问
是我没说清楚吧!我不是要移动窗体。
而是要改变窗体的大小,拖拉窗体边框改变窗体大小时显示窗体内容。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是改变窗体大小吧
以text文本框为例
Private Sub Form_Resize() '窗体_改变大小()
Text2.Height = Form1.Height - 400 '文本框2.高度 = 窗体1.高度 - 400
Text2.Width = Form1.Width - 100 '文本框2.宽度 = 窗体1.宽度 - 100
End Sub
这是你想要的吗?
以text文本框为例
Private Sub Form_Resize() '窗体_改变大小()
Text2.Height = Form1.Height - 400 '文本框2.高度 = 窗体1.高度 - 400
Text2.Width = Form1.Width - 100 '文本框2.宽度 = 窗体1.宽度 - 100
End Sub
这是你想要的吗?
更多追问追答
追问
谢谢,但这个我知道,并不是我想要的。
如同xkwy100的回答,不过他说的在系统里面更改,而我要的是在代码里直接实现。
我想要的效果是窗体在拉大或拉小时,窗体的内容是可以看见的(文本框,标签什么的都可以看见。),而不是只有窗体的线框!(窗体在原地没变,只有线条显示拉伸的长宽,松开鼠标后窗体才变成拉伸的尺寸!)
简单说就是窗体在拉伸时,调整大小的同时可以看见窗体的内容。并不是调整好后才看见。
追答
我看明白了,你说的是改变窗体大小的时候,控件根据窗体大小而改变,是吗?就像这段代码一样。窗体拉申大或小的时候text的大小就会改变。如果不是这样,那是我没看懂你的问题吧!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询