科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用VB实现窗口图标最小化到通知栏

用VB实现窗口图标最小化到通知栏

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如何做到当我们单击窗口的最小化按钮时,窗口先最小化到任务栏成为按钮,然后消失,图标显示到通知栏呢

作者:李俊 来源:yesky 2007年10月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
第二步:新建一窗口,取名为:Form1:

  1、 设置属性如下:

.Name=Form1
.Caption="通知栏图标测试"
.Icon=(Icon),选择一个漂亮的图标
其它默认即可

  2、 设置窗口全局变量,并设置初始值

'用于标识窗口是否已经按过最小化按纽
Dim MinFlag As Boolean
Private Sub Form1_Load()
 MinFlag = False
End Sub

  3、 窗口最小化时产生Resize事件,设置Form1.Resize事件,判断窗口是否最小化

Private Sub Form1_Resize()
 '判断窗口是否最小化状态,并且是按最小化按纽后第一次发生Resize事件
 If IsIconic(Me.hwnd) <> 0 And MinFlag = False Then
  MinFlag = True
  IcCardMain.Visible = False '隐藏窗口
  '将窗口图标加入通知栏
  Call Icon_Add(Me.hwnd, Me.Caption, IcCardMain.Icon, 0)
 End If
End Sub

  4、如图所示用菜单设计器建一个弹出菜单,取名为main,main内有一个菜单数组:

  菜单一:m_Menu(0) 标题:显示窗口

  菜单二:m_Menu(1))标题:退出

  菜单事件:

Private Sub m_Menu_Click(Index As Integer)
 Select Case Index
  Case 0: '当单击"显示窗口"菜单时
   Call Icon_Del(Form1.hwnd, 0) '删除通知栏图标
   Form1.Show '调出窗口
  Case 1: '当单击"退出"菜单时
   Call Icon_Del(Form1.hwnd, 0) '删除通知栏图标
   End '退出程序
 End Select
End Sub

  5、设置Form_MouseDown事件,用于单通知栏图标时调出弹出菜单

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Dim L
 L = X \ 15
 '点击通知栏图标,用鼠标右键时调出弹出菜单
 IF L = WM_LBUTTONDOWN Then
  Me.PopupMenu m_Main
  '点击通知栏图标,用鼠标左键时,将通知栏图标改为另外的图标
 ElseIF L = WM_LBUTTONDOWN Then
  Call Icon_Modify(Form1.hwnd,Form1.Caption, LoadPicture("D:\Pic2.ico"), 0)
 End If
End Sub

  程序编写完毕,设置工程的主程序为Form1,保存后运行。按下窗口最小化按纽,窗口消失,并在通知栏显示出窗口的图标;将鼠标移到图标上,有"通知栏图标测试"提示文本显示;用鼠标左键单击通知栏图标,图标变成另外的图案;单出鼠标右键,出现如上图所示的弹出菜单,接着单击弹出菜单"显示窗体",通知栏图标消失、窗口又恢复成原来的样子了,单击菜单"退出"则退出程序了。

  以上程序在Windows98+VB6.0及Windows2000+VB6.0下测试通过。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章