我用API实现了无标题栏的拖动,但是不能象以前那样拖动窗口边缘来改变窗口的大小,请问哈,怎样实现拖动窗体改变窗口大小呢??

解决方案 »

  1.   

    Option ExplicitPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Const GWL_STYLE = (-16)
    Private Const WS_THICKFRAME = &H40000Private Sub Form_Load()
        Dim style As Long
        style = GetWindowLong(Me.hwnd, GWL_STYLE)
        style = style Or WS_THICKFRAME
        SetWindowLong Me.hwnd, GWL_STYLE, style
    End Sub
      

  2.   

    你是不是把BorderStyle设为0了,如果你对无标题栏要求不高的话,设ControlBox=False,Caption=""算了,不要把borderStyle=0掉,=2就可以调整form大小,而且无标题栏
      

  3.   

    为什么暴风雨的程序我执行的时候还是不能调整大小,如果把BorderStyle设为0的时候
      

  4.   

    Option Explicit
    Private 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 Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Const GWL_STYLE = (-16)
    Private Const WS_THICKFRAME = &H40000Private Sub Form_Load()
        Dim style As Long
        style = GetWindowLong(Me.hwnd, GWL_STYLE)
        style = style Or WS_THICKFRAME
        SetWindowLong Me.hwnd, GWL_STYLE, style
        SetWindowPos hWnd, 0, 0, 0, 0, 0, &H1 Or &H4 Or &H20 Or &H2'加上这一句
    End Sub
      

  5.   

    我是把BorderStyle设为0了,因为是用自己的皮肤。
    TO:rainstormmaster(暴风雨 v2.0)
    你的程序,可以实现,我在修改WindowState时,改变大小,但是没办法拖动改变。
      

  6.   

    TO: tmd007
    加了SetWindowPos hWnd, 0, 0, 0, 0, 0, &H1 Or &H4 Or &H20 Or &H2'加上这一句
    也不行呀。
      

  7.   

    //你的程序,可以实现,我在修改WindowState时,改变大小,但是没办法拖动改变你是把窗体边框裁剪了吧?这种情况下,要用钩子来做了
      

  8.   

    一般专业的Skin程序,为了实现完美效果,都是自己处理窗体边缘的鼠标事件,模拟拖动改变大小的功能
      

  9.   

    你用自己的皮肤还想改变form大小,一改拖出来的是form的原始色,你的皮肤应该不会跟着form一起变吧?如果你能做到皮肤也能跟着变,跟我说一下,我也非常头疼这个问题
      

  10.   

    我的皮肤可跟着FORM一起变。只是有点抖动。
      

  11.   

    //什么钩子呢????当然是鼠标钩子了,先问一下你的皮肤是用SetWindowRgn实现的吗?