form的borderstyle=0的时候,如何改变窗口的大小?

laisiwei 2003-01-12 03:45:09
要求:当鼠标移到窗口边缘的时候,鼠标的光标变成箭头的样子,然后,可以拖动可以改变大小
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl910 2003-01-12
  • 打赏
  • 举报
回复
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const GWL_STYLE = (-16)

Private Const WS_THICKFRAME = &H40000


Private Sub Form_Load()
Dim TempLng As Long

TempLng = GetWindowLong(Me.hWnd, GWL_STYLE)
TempLng = TempLng Or WS_THICKFRAME '用可改变大小的边框
SetWindowLong Me.hWnd, GWL_STYLE, TempLng

End Sub
kjah 2003-01-12
  • 打赏
  • 举报
回复
可以用用代码实现
比如:
dim DragWest as boolean
窗体mousedown事件
If X <= 15 Then
DragWest = True
End If
mousemove事件
If DragWest Then
Me.Left = Me.Left + X
Me.Width = Me.Width - X
elseIf x<=15 then
Me.MousePointer = 9'改变鼠标图标
end if
mouseup事件
DragWest=False

应该可以改变左边的边界,临时写的没有容错 width不能<0
可能还有别的问题,见笑了
只是提供一个思路
qqqdong 2003-01-12
  • 打赏
  • 举报
回复
哎,你真辛苦
programart_life 2003-01-12
  • 打赏
  • 举报
回复
用API可以做到。但是有这必要吗?除非你真的喜欢折腾自己
bu_wen 2003-01-12
  • 打赏
  • 举报
回复
用 SetWindowPos 重新设定
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

private sub Chang()
setwindowpos me.hnd , HWND_NOTOPMOST,0,0,CX,CY,SWP_NOMOVE
end sub

cx ,cy 为 新设定的 长 宽

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧