+ -
当前位置:首页 → 问答吧 → 通过如下语句更改无标题栏窗口得大小是为什么只能更改横向大小?

通过如下语句更改无标题栏窗口得大小是为什么只能更改横向大小?

时间:2011-11-17

来源:互联网

VB code

Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
'释放程序鼠标捕获
Public Declare Function ReleaseCapture Lib "user32" _
( _
    ) As Long
'发送一条消息
Public Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
( _
    ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any _
) As Long

Public Const WM_SYSCOMMAND = &H112
Public Const HTCAPTION = 2
Public Const SC_SIZE = &HF000&

private Sub SetSize()
  If Button = 1 Then
      X1 = ReleaseCapture()
      ReturnVal1 = SendMessage(Me.hwnd, WM_SYSCOMMAND, _
                               SC_SIZE + HTCAPTION, 0)
  End If
End If


请各位走过路过,不要错过,看一看,瞧一瞧,实在不会的帮顶,会的请帮忙啊~

作者: JiLuoXingRen   发布时间: 2011-11-17

看了下,的确只能横向修改,看看再说。

作者: Veron_04   发布时间: 2011-11-17

测试以下语句:
VB code

      ReturnVal1 = SendMessage(Me.hwnd, WM_SYSCOMMAND, _
                               SC_SIZE Or 6 + HTCAPTION, 0)



作者: chinaboyzyq   发布时间: 2011-11-17

猴哥的办法OK

作者: Veron_04   发布时间: 2011-11-17

这个6是神马意思?

作者: Veron_04   发布时间: 2011-11-17

VB code

Private Declare Function ReleaseCapture Lib "user32" _
( _
    ) As Long
'发送一条消息
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
( _
    ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any _
) As Long

Private Const WM_SYSCOMMAND = &H112
Private Const HTCAPTION = 2
Private Const HTHSCROLL = 6

Private Const SC_SIZE = &HF000&

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Button = 1 Then
      X1 = ReleaseCapture()
      ReturnVal1 = SendMessage(Me.hwnd, WM_SYSCOMMAND, _
                               SC_SIZE + HTHSCROLL + HTCAPTION, 0)
  End If
End Sub


作者: Veron_04   发布时间: 2011-11-17