乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>VBA</em>,如何将窗体设置为可以最小化的-vba excel最大化,excel v

<em>VBA</em>,如何将窗体设置为可以最小化的-vba excel最大化,excel v

作者:乔山办公网日期:

返回目录: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

相关阅读

  • <em>excel</em> <em>VBA</em> checkbox

  • 乔山办公网excel表格制作
  • 以下代码循环当前窗体上的所有控件抄,如果存在复选框控件,则将控件状态取反。希望对你有帮助袭Dim nControl as Control For Each nControl In Me.Controls If TypeName(nControl ) = "CheckBox" Then
  • 谁有《<em>excel</em> 2013 <em>VBA</em>入

  • 乔山办公网excel表格制作
  • 书名=玩转微信实用攻略作者=赵黎著页码=166 ISBN=978-7-5021-9495-6出版社=北京:石油工业出版社 , 2013.05 附件已经上传Excel VBA 其实很简单》的完整电子版" src="/uploads/tu/878.jpg" style=
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网