我想实现窗体控件随窗体大小改变,并且在窗体缩小到一定程度,不允许继续缩小,例如
Private Sub Form_Resize()
If Me.Width < 3500 Then
    Me.Width = 3500
End IfIf Me.Height < 3500 Then
    Me.Height = 3500
End If
End Sub可是这样一来,窗体不停闪烁,如何实现缩小到一定程度,不允许继续缩小,且不闪烁?

解决方案 »

  1.   

    子类
    处理WM_GETMINMAXINFO消息
      

  2.   

    看这里:
    http://sunh.hosp.ncku.edu.tw/~cww/html/q00154.html
      

  3.   

    to: rainstormmaster(暴风雨 v2.0) 
    代码运行vb直接就关了..哪里有问题啊.
    有没有测试过的原码啊,我API才学不久,好弱..
      

  4.   

    把wndproc改一下:Public Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim lwd As Long, hwd As Long
    If Msg = WM_GETMINMAXINFO Then
         Dim maxmin As MINMAXINFO
         CopyMemory maxmin, ByVal lParam, Len(maxmin)
         maxmin.ptMaxTrackSize.x = 500 '設定最大Resize的寬度
         maxmin.ptMaxTrackSize.y = 400 '設定最大Resize的高度
         maxmin.ptMinTrackSize.x = 300 '設定最大小Resize的寬度
         maxmin.ptMinTrackSize.y = 300 '設定最大小Resize的高度
         CopyMemory ByVal lParam, maxmin, Len(maxmin)
         wndproc = DefWindowProc(hwnd, Msg, wParam, lParam)'原来这里的umsg没定义,所以程序崩溃
    Else
         '將之送往原來的Window Procedure
         wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
    End If
    End Function