1、为什么我的MDIForm子窗体在程序运行时会自动变大呢,不是我设计时的大小,只有把子窗体的BorderStyle设为Fixed类型的才行;
2、BorderStyle里面的Fixed Single和Fixed dialog有什么不同?
3、我想把父窗体的Resize限定在一个范围内,当缩小到某个值时就不能再缩了,(是不能再缩了,就是说到了某个值之后,就不能再调整,而不是缩小之后在返回原来的大小)谢谢。
2、BorderStyle里面的Fixed Single和Fixed dialog有什么不同?
3、我想把父窗体的Resize限定在一个范围内,当缩小到某个值时就不能再缩了,(是不能再缩了,就是说到了某个值之后,就不能再调整,而不是缩小之后在返回原来的大小)谢谢。
解决方案 »
- 发一个自己编写的进销存软件"迷你进销存",有需要的朋友可以试试
- 多系统如何设置启动顺序?
- vb页面上有个label标签,我想让窗体打开时上面的字闪烁几下,该怎么弄
- 如何在VB中实现新打开一个Form另过的Form不能进行操作,焦点一直保持,直到此窗体关了,下面的窗体方可操作
- 我想直接用Open和Print # 的办法控制并口的打印机,具体怎么弄啊?
- 关于DATAGRID控件的一个问题?
- 求救(分不够再加)
- 在VB中用ExitProcess退出程序的问题?
- mshflexgrid问题,在线等候!!
- 在MS Access中哪里设置使文本显示的是*****密码形式!在MS server呢?!急!
- listview 的问题
- 100分求:用VB实现的类似windows自带的计算器,最好有文档的!!!
2、FixedSingle 固定单边框。可以包含控制菜单框,标题栏,“最大化”按钮,和“最小化”按钮。只有使用最大化和最小化按钮才能改变大小。 Fixed dialog 固定对话框。可以包含控制菜单框和标题栏,不能包含最大化和最小化按钮,不能改变尺寸。
3、
Private Sub Form_Resize()
If Form1.Height < 5000 Then Form1.Height = 5000
If Form1.Width < 5000 Then Form1.Width = 5000
End Sub
Me.Height = 9600
Me.Width = 7200
窗体代码:
Option Explicit
Private Const GWL_WNDPROC As Long = (-4&)
Private Declare Function SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Sub Form_Load()
procOld = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call SetWindowLong(hWnd, GWL_WNDPROC, procOld)
End Sub模块代码:Option Explicit
Type POINTAPI
x As Long
y As Long
End Type
Public Const WM_GETMINMAXINFO As Long = &H24
Type MINMAXINFO
ptReserved As POINTAPI
ptMaxSize As POINTAPI
ptMaxPosition As POINTAPI
ptMinTrackSize As POINTAPI
ptMaxTrackSize As POINTAPI
End Type
Public procOld As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes&)
Public Declare Function CallWindowProc& Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc&, ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
Public Function WindowProc(ByVal hWnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case iMsg
Case WM_GETMINMAXINFO
Dim udtMINMAXINFO As MINMAXINFO
Dim nWidthPixels&, nHeightPixels&
nWidthPixels = Screen.Width \ Screen.TwipsPerPixelX
nHeightPixels = Screen.Height \ Screen.TwipsPerPixelY
CopyMemory udtMINMAXINFO, ByVal lParam, 40&
With udtMINMAXINFO
.ptMaxSize.x = nWidthPixels - (nWidthPixels \ 4)
.ptMaxSize.y = nHeightPixels - (nHeightPixels \ 4)
.ptMaxPosition.x = nWidthPixels \ 8
.ptMaxPosition.y = nHeightPixels \ 8
.ptMaxTrackSize.x = .ptMaxSize.x
.ptMaxTrackSize.y = .ptMaxSize.y
.ptMinTrackSize.x = nWidthPixels \ 4
.ptMinTrackSize.y = nHeightPixels \ 4
End With
CopyMemory ByVal lParam, udtMINMAXINFO, 40&
WindowProc = False
Exit Function
End Select
WindowProc = CallWindowProc(procOld, hWnd, iMsg, wParam, lParam)
End Function