ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4859|回复: 9

[求助] 关于工作表最小化

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:02 | 显示全部楼层 |阅读模式
本帖最后由 hund567 于 2013-1-29 11:15 编辑

怎样实现窗体最小化后,工作表同样最小化?窗体最小化我已经实现了。关键是怎样使工作表最小化,多谢!
如果不好解决,那么退一步,如何只显示窗体而不显示其后方的工作表?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-29 11:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求大神啊! @amesman

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:12 | 显示全部楼层
离窗体还很远,只能远远敬望了

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-29 11:14 | 显示全部楼层
niuhui2009 发表于 2013-1-29 11:12
离窗体还很远,只能远远敬望了

我也是新手…

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一、首先需要一个模块,没有加的话添加一个,在模块的代码页中输入以下部分,注意看我的注释:'以下是做窗体在最小化不显示在任务栏而在通知栏的常量基函数声明
Public Const DefaultIconIndex = 1 '图标缺省索引
Public Const WM_LBUTTONDOWN = &H201 '按鼠标左键
Public Const WM_RBUTTONDOWN = &H204 '按鼠标右键
Public Const WM_LBUTTONDBLCLK = &H203 '双击鼠标左键Public Const NIM_ADD = 0 '添加图标
Public Const NIM_MODIFY = 1 '修改图标
Public Const NIM_DELETE = 2 '删除图标Public Const NIF_MESSAGE = 1 'message 有效
Public Const NIF_ICON = 2 '图标操作(添加、修改、删除)有效
Public Const NIF_TIP = 4 'ToolTip(提示)有效''API函数声明
'图标操作
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'判断窗口是否最小化
Public Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Long
'
'设置窗口位置和状态(position)的功能
Public Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long'定义类型
'通知栏图标状态
Public Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type'===========================================================================二、在你要缩小的窗口代码编辑窗口里定义一个量。如下:'用于标识窗口是否已经按过最小化按纽
Dim MinFlag As Boolean三、下面三个事件分别是判断最小化和任务栏图标右键菜单,双击等效果的。===============================================================rivate Sub Form_Resize()
'判断窗口是否最小化状态,并且是按最小化按纽后第一次发生Resize事件
If IsIconic(Me.hWnd) <> 0 And MinFlag = False Then
MinFlag = Not MinFlag
Me.Visible = False '隐藏窗口
'将窗口图标加入通知栏
Call Icon_Add(Me.hWnd, Me.Caption, Me.Icon, 0)
End If
End Sub'Private Sub m_Menu_Click(Index As Integer)
Select Case Index
Case 0: '当单击"显示窗口"菜单时
Call Icon_Del(Formdl.hWnd, 0) '删除通知栏图标
Formdl.Show '调出窗口
Formdl.WindowState = 0
MinFlag = False
Case 1: '当单击"退出"菜单时
Call Icon_Del(Formdl.hWnd, 0) '删除通知栏图标
End '退出程序
End Select
End Sub'Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim L
L = X \ Screen.TwipsPerPixelX
'点击通知栏图标,用鼠标右键时调出弹出菜单
If L = WM_RBUTTONDOWN Then
Me.PopupMenu m_Main
ElseIf L = WM_LBUTTONDBLCLK Then
Call Icon_Del(Formdl.hWnd, 0) '删除通知栏图标
Formdl.Show '调出窗口
Formdl.WindowState = 0
MinFlag = False
End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-29 11:20 | 显示全部楼层
yqdaqinqin 发表于 2013-1-29 11:16
一、首先需要一个模块,没有加的话添加一个,在模块的代码页中输入以下部分,注意看我的注释:'以下是做窗体 ...

果然有高人,辛苦了,多谢!

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hund567 发表于 2013-1-29 11:20
果然有高人,辛苦了,多谢!

搞这个就是看起来花哨点,意义不大

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-1-29 11:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yqdaqinqin 发表于 2013-1-29 11:22
搞这个就是看起来花哨点,意义不大

主要是领导动动嘴,小兵跑断腿…大神你懂得…

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-9-27 12:25 | 显示全部楼层
yqdaqinqin 发表于 2013-1-29 11:16
一、首先需要一个模块,没有加的话添加一个,在模块的代码页中输入以下部分,注意看我的注释:'以下是做窗 ...

Type'===========================================================================二、在你要缩小的窗口代码编辑窗口里定义一个量。如下:'用于标识窗口是否已经按过最小化按纽
Dim MinFlag As Boolean三、下面三个事件分别是判断最小化和任务栏图标右键菜单,双击等效果的。===============================================================rivate Sub Form_Resize()
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 05:50 , Processed in 0.024502 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表