vba窗体 点击增加减少_VBA 窗体之添加最大最小化按钮 | ExcelFans

'****************************************

'---此模块演示了给窗体添加最大最小化按钮---

'****************************************

Option Explicit

'以下声明API函数

#If Win64 Then '64位

Private Declare PtrSafe Function FindWindow _

Lib "user32" _

Alias "FindWindowA" ( _

ByVal lpClassName As String, _

ByVal lpWindowName As String) _

As LongPtr

Private Declare PtrSafe Function GetWindowLong _

Lib "user32" _

Alias "GetWindowLongPtrA" ( _

ByVal hwnd As LongPtr, _

ByVal nIndex As Long) _

As LongPtr

Private Declare PtrSafe Function SetWindowLong _

Lib "user32" _

Alias "SetWindowLongPtrA" ( _

ByVal hwnd As LongPtr, _

ByVal nIndex As Long, _

ByVal dwNewLong As LongPtr) _

As LongPtr

Private Declare PtrSafe Function DrawMenuBar _

Lib "user32" ( _

ByVal hwnd As LongPtr) _

As Long

#Else '32位

'查找窗口

Private Declare Function FindWindow _

Lib "User32" _

Alias "FindWindowA" ( _

ByVal lpClassName As String, _

ByVal lpWindowName As String) _

As Long

'取得窗口样式位

Private Declare Function GetWindowLong _

Lib "User32" _

Alias "GetWindowLongA" ( _

ByVal Hwnd As Long, _

ByVal nIndex As Long) _

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 Declare Function DrawMenuBar _

Lib "User32" ( _

ByVal Hwnd As Long) _

As Long

#End If

#If Win64 Then '64位

Private FHwnd As LongPtr

Private FIstype As LongPtr

#Else

Private FHwnd As Long

Private FIstype As Long

#End If

'以下定义常数

Private Const GWL_STYLE = (-16) '窗口样式

Private Const WS_MAXIMIZEBOX = &H10000 '最大化按钮

Private Const WS_MINIMIZEBOX = &H20000 '最小化按钮

'**************************************

'---------------主程序-----------------

'**************************************

Private Sub UserForm_Initialize()

'查找窗口句柄

FHwnd = FindWindow("ThunderDFrame", Me.Caption)

'取得窗口样式位

FIstype = GetWindowLong(FHwnd, GWL_STYLE)

'窗体样式位: 原样式和最大化、最小化按钮

FIstype = FIstype Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX

'重设窗体样式位

SetWindowLong FHwnd, GWL_STYLE, FIstype

'重绘窗体标题栏

DrawMenuBar FHwnd

End Sub

'****************************************

'---此模块演示了给窗体添加最大最小化按钮---

'****************************************

Option Explicit

'以下声明API函数

#If Win64 Then '64位

Private Declare PtrSafe Function FindWindow _

Lib "user32" _

Alias "FindWindowA" ( _

ByVal lpClassName As String, _

ByVal lpWindowName As String) _

As LongPtr

Private Declare PtrSafe Function GetWindowLong _

Lib "user32" _

Alias "GetWindowLongPtrA" ( _

ByVal hwnd As LongPtr, _

ByVal nIndex As Long) _

As LongPtr

Private Declare PtrSafe Function SetWindowLong _

Lib "user32" _

Alias "SetWindowLongPtrA" ( _

ByVal hwnd As LongPtr, _

ByVal nIndex As Long, _

ByVal dwNewLong As LongPtr) _

As LongPtr

Private Declare PtrSafe Function DrawMenuBar _

Lib "user32" ( _

ByVal hwnd As LongPtr) _

As Long

#Else '32位

'查找窗口

Private Declare Function FindWindow _

Lib "User32" _

Alias "FindWindowA" ( _

ByVal lpClassName As String, _

ByVal lpWindowName As String) _

As Long

'取得窗口样式位

Private Declare Function GetWindowLong _

Lib "User32" _

Alias "GetWindowLongA" ( _

ByVal Hwnd As Long, _

ByVal nIndex As Long) _

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 Declare Function DrawMenuBar _

Lib "User32" ( _

ByVal Hwnd As Long) _

As Long

#End If

#If Win64 Then '64位

Private FHwnd As LongPtr

Private FIstype As LongPtr

#Else

Private FHwnd As Long

Private FIstype As Long

#End If

'以下定义常数

Private Const GWL_STYLE = (-16) '窗口样式

Private Const WS_MAXIMIZEBOX = &H10000 '最大化按钮

Private Const WS_MINIMIZEBOX = &H20000 '最小化按钮

'**************************************

'---------------主程序-----------------

'**************************************

Private Sub UserForm_Initialize()

'查找窗口句柄

FHwnd = FindWindow("ThunderDFrame", Me.Caption)

'取得窗口样式位

FIstype = GetWindowLong(FHwnd, GWL_STYLE)

'窗体样式位: 原样式和最大化、最小化按钮

FIstype = FIstype Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX

'重设窗体样式位

SetWindowLong FHwnd, GWL_STYLE, FIstype

'重绘窗体标题栏

DrawMenuBar FHwnd

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值