VB实现窗口最小化小任务栏_最小化后任务栏找不到

2020-02-27 其他范文 下载本文

VB实现窗口最小化小任务栏由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“最小化后任务栏找不到”。

要实现窗口最小化必须满足以下条件:

1:按下最小化按钮,窗体不可见

2:最小化后,最小化窗体的图标必须出现在任务栏的通知区域中

3:当双击通知区域中的图标时,窗体又显示出来,同时通知区域中的图标消失.要满足上面的条件:

1:首先屏蔽窗体中系统自带的最小化图标,即Form.MinButton=False

2:声明1个API函数:

Public Declare Function Shell_NotifyIcon Lib “shell32.dll” Alias “ Shell_NotifyIconA”(ByVal dwMeage As Long, lpData As NOTIFYICONDATA)As Long

注意:上面这个API函数在XP中没有别名,将别名去掉后为:

Public Declare Function Shell_NotifyIcon Lib “shell32.dll”(ByVal dwMeage As Long, lpData As NOTIFYICONDATA)As Long

3:声明7个常数:

Public Const NIM_ADD = &H0

Public Const NIM_DELETE = &H2

Public Const NIF_ICON = &H2

Public Const NIF_MESSAGE = &H1

Public Const NIF_TIP = &H4

Public Const WM_MOUSEMOVE = &H200

Public Const WM_LBUTTONDBLCLK = &H203

4:定义1个NOTIFYICONDATA类型

Public Type NOTIFYICONDATA

cbSize as Long

hWnd as Long

uId as Long

uFlags as Long

uCallBackMeage as Long

hIcon as Long

szTip as String

End Type

5:声明一个nid的类型

Public nid as NOTIFYICONDATA

思路清晰后,开始编写代码

1:在窗体中画1个Command,它的Caption属性为:“最小化”

2:将窗体Form的MinButton的属性设为:“False”

3:在窗体中添加1个模块,模块中的代码为:

Public Declare Function Shell_NotifyIcon Lib “shell32.dll”(ByVal dwMeage As Long, lpData As NOTIFYICONDATA)As Long

Public Const NIM_ADD = &H0

Public Const NIM_DELETE = &H2

Public Const NIF_ICON = &H2

Public Const NIF_MESSAGE = &H1

Public Const NIF_TIP = &H4

Public Const WM_MOUSEMOVE = &H200

Public Const WM_LBUTTONDBLCLK = &H203

Public Type NOTIFYICONDATA

cbSize as Long

hWnd as Long

uId as Long

uFlags as Long

uCallBackMeage as Long

hIcon as Long

szTip as String

End Type

Public nid as NOTIFYICONDATA

4:编写Command的单击事件:

Private Sub Command1_Click()

nid.cbSize = Len(nid)

nid.uId = vbNull

nid.hWnd = Me.hWnd

nid.uFlags = NIF_TIP Or NIF_MESSAGE Or NIF_ICON

nid.uCallBackMeage = WM_MOUSEMOVE

nid.hIcon = Me.Icon

nid.szTip = “窗体最小化”

Shell_NotifyIcon NIM_ADD, nid

Me.Hide

End Sub

5:编写窗体的MouseMove事件:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim msg As Long

msg = X / 15

If msg = WM_LBUTTONDBLCLK Then

Me.Show

Shell_NotifyIcon NIM_DELETE, nid

End If

End Sub

按F5启动,单击Command,看看通知区域中是不是多了个窗体的图标?双击该图标,窗体又显示出来了!

《VB实现窗口最小化小任务栏.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
VB实现窗口最小化小任务栏
点击下载文档
相关专题 最小化后任务栏找不到 最小化 任务栏 窗口 最小化后任务栏找不到 最小化 任务栏 窗口
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文