作者:乔山办公网日期:
返回目录:excel表格制作
DoCmd.Minimize 最小化当前窗口
可以不用调用API函数,最小化,最大化等窗体的所有操作都可以用DOCMD的对象的各种方法来实现的。而且语句都很简单。
有2中方法:
1、把窗口设置无标题方式,然后自定义标题模式,模拟最小7a686964616fe78988e69d83337化功能。
2、通过API方式,把窗口的最小化按钮恢复出来。
这里推荐第二种方法,稳定性比较高,且开发简单。
代码:
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long '获取窗口样式API
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long '查找当前窗口句柄API
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16) '设置窗口样式API
Private Const WS_MINIMIZEBOX As Long = &H20000 '(最小化)
'窗体UserForm的初始化
Private Sub UserForm_Initialize()
Dim hWndForm As Long
Dim IStyle As Long
hWndForm = FindWindow("ThunderDFrame", Me.Caption) ’获取窗口句柄
IStyle = GetWindowLong(hWndForm, GWL_STYLE) '获取当前标题栏样式
IStyle = IStyle Or WS_MINIMIZEBOX '设置最小化按钮
SetWindowLong hWndForm, GWL_STYLE, IStyle '显示最小化按钮
End Sub
使用
BOOL ShowWindow(HWND hWnd, int nCmdShow);函数百
HWND hWnd, 窗口度句柄
int nCmdShow,显示方式
SW_HIDE:隐藏窗口并专激活其他窗口。nCmdShow=0。
SW_MAXIMIZE:最大化指定的窗口。nCmdShow=3。
SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶属层窗口。nCmdShow=6。
在窗体代码中加上以上这段,ok搞定!
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) 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 Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME As Long = &H40000 ’(恢复大小)
Private Const WS_MINIMIZEBOX As Long = &H20000 ’(最小化)
Private Const WS_MAXIMIZEBOX As Long = &H10000 ’(最大化)
Private Sub UserForm_Initialize()
Dim hWndForm As Long
Dim IStyle As Long
hWndForm = FindWindow("ThunderDFrame", Me.Caption)
IStyle = GetWindowLong(hWndForm, GWL_STYLE)
IStyle = IStyle Or WS_THICKFRAME ’还e68a84e799bee5baa6e79fa5e98193339原
IStyle = IStyle Or WS_MINIMIZEBOX ’最小化
IStyle = IStyle Or WS_MAXIMIZEBOX ’最大化
SetWindowLong hWndForm, GWL_STYLE, IStyle
End Sub