建了一个form,可以resize的,但我不想它小于某个大小,比如width 不能小于200,height不能小于150
解决方案 »
- mshflexgrid中,如何将最后两列的最后四行左右合并
- 大虾帮忙,请问MSINET控件怎么接收表单信息和发送表单信息!
- 哪位大哥有自动在线更新的程式啊?高分相送,我要完整的写好的.
- 关于iNet控件的icExecuting错误,大家来帮忙看看~~
- 如何在使用多进程的情况下将vb6的原程序编译生成可执行文件,报说一个关于dr.watison的程序出问提
- 关于usercontrol的接口问题。
- 请问用VB怎样得到XML结点的属性值?
- 怎样使写的软件是要用户注册的,用什么方法区分试用或已注册的?
- 关于mci控件的使用
- set datagrid.datasource=rs 怎么是错的
- 允许多行显示的text怎么样增大行间距啊?
- 关于一个循环的问题!!
Option Explicit
Private Sub Form_Load()
Me.Width = 400 * 15
Me.Height = 200 * 15
Call SubClass(Me.hwnd)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnSubClass(Me.hwnd)
End Sub------------------------------------------------
'模块
Option Explicit
Public defWindowProc As Long
Public minX As Long
Public minY As Long
Public maxX As Long
Public maxY As LongPublic Const GWL_WNDPROC As Long = (-4)
Public Const WM_GETMINMAXINFO As Long = &H24Public Type POINTAPI
x As Long
y As Long
End TypeType MINMAXINFO
ptReserved As POINTAPI
ptMaxSize As POINTAPI
ptMaxPosition As POINTAPI
ptMinTrackSize As POINTAPI
ptMaxTrackSize As POINTAPI
End TypePublic Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" _
Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As LongPublic Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(hpvDest As Any, _
hpvSource As Any, _
ByVal cbCopy As Long)
Public Sub SubClass(hwnd As Long) On Error Resume Next
defWindowProc = SetWindowLong(hwnd, _
GWL_WNDPROC, _
AddressOf WindowProc)
End Sub
Public Sub UnSubClass(hwnd As Long) If defWindowProc Then
SetWindowLong hwnd, GWL_WNDPROC, defWindowProc
defWindowProc = 0
End If
End Sub
Public Function WindowProc(ByVal hwnd As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
On Error Resume Next
Select Case uMsg
Case WM_GETMINMAXINFO
Dim MMI As MINMAXINFO
CopyMemory MMI, ByVal lParam, LenB(MMI)
With MMI
.ptMinTrackSize.x = 400
.ptMinTrackSize.y = 200
.ptMaxTrackSize.x = 500
.ptMaxTrackSize.y = 300
End With
CopyMemory ByVal lParam, MMI, LenB(MMI)
WindowProc = 0
Case Else
WindowProc = CallWindowProc(defWindowProc, _
hwnd, _
uMsg, _
wParam, _
lParam)
End Select
End Function