VBA,如何将窗体设置为可以最小化的

 我来答
woshidaniel
推荐于2016-03-03 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:952万
展开全部

有2中方法:

1、把窗口设置无标题方式,然后自定义标题模式,模拟最小化功能。

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
徐小晕
2012-02-01 · TA获得超过3500个赞
知道小有建树答主
回答量:651
采纳率:50%
帮助的人:719万
展开全部
''利用API,给窗体加上最大化与最小化按钮:

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 '还原
IStyle = IStyle Or WS_MINIMIZEBOX '最小化
IStyle = IStyle Or WS_MAXIMIZEBOX '最大化
SetWindowLong hWndForm, GWL_STYLE, IStyle

End Sub
追问
放什么地方啊?
追答
双击用窗体,第一行插入这个代码就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HadSky
推荐于2017-12-16 · 超过20用户采纳过TA的回答
知道答主
回答量:107
采纳率:33%
帮助的人:47.4万
展开全部
点一下你要设置的窗体,在属性里找 有个minbutton什么的,将设为true
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式