當前位置:編程學習大全網 - 編程語言 - vb編程時如何設置窗體的最小尺寸

vb編程時如何設置窗體的最小尺寸

'新增壹個模塊,把下面的代碼復制到模塊中

Option Explicit

'*************************************************************************************************

'******************** 作者: 南宮飄雪 ******************************************

'******************** Email: Joforn@sohu.com ******************************************

'******************** QQ: 42978116 ******************************************

'*************************************************************************************************

Type POINTAPI

X As Long

Y As Long

End Type

Type MINMAXINFO

ptReserved As POINTAPI

ptMaxSize As POINTAPI

ptMaxPosition As POINTAPI

ptMinTrackSize As POINTAPI

ptMaxTrackSize As POINTAPI

End Type

Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam 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 Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)

Public Const GWL_WNDPROC = (-4)

Public Const WM_GETMINMAXINFO = &H24

Dim OldProc&

Dim mhWnd&

'==================================================

'回調

Function WinProc&(ByVal hWnd&, ByVal wMsg&, _

ByVal wParam&, ByVal lParam&)

Select Case wMsg&

Case WM_GETMINMAXINFO

Dim MinMax As MINMAXINFO

CopyMemory MinMax, ByVal lParam, Len(MinMax)

MinMax.ptMinTrackSize.x = 500 '這裏設置窗體最小Width(註意這裏尺寸的單位是像素,不是VB常用的緹,下面的也是像素)

MinMax.ptMinTrackSize.y = 500 '這裏設置窗體最小Height

' MinMax.ptMaxTrackSize.x = 808 '這裏設置窗體最大Width

' MinMax.ptMaxTrackSize.y = 250 '這裏設置窗體最大Height

CopyMemory ByVal lParam, MinMax, Len(MinMax)

WinProc& = 1

Exit Function

End Select

WinProc& = CallWindowProc(OldProc, hWnd, wMsg, wParam, lParam)

End Function

'==================================================

'==================================================

'掛鉤

Sub Hook(ByVal nhWnd&)

mhWnd& = nhWnd&

OldProc = SetWindowLong(nhWnd&, GWL_WNDPROC, AddressOf WinProc)

End Sub

'==================================================

'在要控制大小的窗體Form_Load事件代碼中添加代碼如下:

Private Sub Form_Load()

Hook Me.hWnd

End Sub

  • 上一篇:西部項目綜述
  • 下一篇:java程序的初始化
  • copyright 2024編程學習大全網