如何使用与在 Windows 95/98/me 任务栏通知区域的图标

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 149276
本文已归档。它按“原样”提供,并且不再更新。
概要
Windows API 提供了能够添加、 修改,和删除系统任务栏或任务栏通知区域,在 Windows 95、 Windows 98、 Windows Me、 Windows NT 4.0 和 Windows 2000 外壳程序中可用的图标。可以使用仅导出由 Shell32.dll Shell_NotifyIcon 函数提供此功能。此 API 函数还提供了可以指定当用户将鼠标指针暂停在图标上时显示的工具提示的文本字符串。在这篇文章中逐步骤的示例创建一个 Visual Basic 程序,它说明如何使用此 API 函数。

如果单击该图标在任务栏通知区域中的执行某些操作能力取决于回调函数。由于 Visual Basic 4.0 不直接支持回调函数,则没有要显示窗体或执行某些代码使用仅 Visual Basic 4.0 方法。在 Visual Basic 5.0 中 (及更高版本) 添加了此功能,在添加了 AddressOf 运算符。多个选项是可以提供包括邮件冲击波 OCX,这篇文章或回叫 OLE 服务器的详细说明了 高手 Visual Basic 上的罗斯向她提议去共度 McKinney 简介册中的"参考"部分中所述的 Microsoft 系统日记本文章中提到的 OCX 的回叫功能的 Visual Basic 4.0 开发人员可用的。在下列任一选项的详细信息请参阅"参考"部分。因为这些产品不包括 Visual Basic,Microsoft 产品支持服务不支持它们的使用。
更多信息
下面的示例创建一个窗体的 Visual Basic 项目显示了如何使用 Shell_NotifyIcon API 函数。

分步示例

  1. 启动 Visual Basic。默认情况下创建 Form1。
  2. 在窗体的图标属性更改为应显示在任务栏通知区域中的图标。
  3. 绘制三个 CommandButtons 拖到窗体上。
  4. 选择从插入菜单将添加到项目中单个代码模块的模块。
  5. 添加下面的代码函数、 类型,和到模块 1 的常数声明组成:
          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      Global Const NIM_ADD = 0      Global Const NIM_MODIFY = 1      Global Const NIM_DELETE = 2      Global Const NIF_MESSAGE = 1      Global Const NIF_ICON = 2      Global Const NIF_TIP = 4      Declare Function Shell_NotifyIconA Lib "SHELL32" _      (ByVal dwMessage As Long,  lpData As NOTIFYICONDATA) As Integer					
  6. 下面的代码是带 NOTIFYICONDATA 类型为设置需要的参数的函数,并返回此类型的变量。 向 Form1 中添加:
          Private Function setNOTIFYICONDATA(hWnd As Long, ID As Long, _          Flags As Long, CallbackMessage As Long, Icon As Long, _          Tip As String) As NOTIFYICONDATA          Dim nidTemp As NOTIFYICONDATA          nidTemp.cbSize = Len(nidTemp)          nidTemp.hWnd = hWnd          nidTemp.uID = ID          nidTemp.uFlags = Flags          nidTemp.uCallbackMessage = CallbackMessage          nidTemp.hIcon = Icon          nidTemp.szTip = Tip & Chr$(0)          setNOTIFYICONDATA = nidTemp      End Function					
  7. 三个步骤在下面的代码块中调用函数在第 5 步以添加、 修改,和删除任务栏通知区域图标中创建。将此代码还添加到 Form1:
          Private Sub Command1_Click()          'Add an icon.  This procedure uses the icon specified in          'the Icon property of Form1. This can be modified as desired.          Dim i As Integer          Dim s As String          Dim nid As NOTIFYICONDATA          s = InputBox("Enter string:")          nid = setNOTIFYICONDATA(hWnd:=Form1.hWnd, _                                  ID:=vbNull, _                                  Flags:=NIF_MESSAGE Or NIF_ICON _                                  Or NIF_TIP, _                                  CallbackMessage:=vbNull, _                                  Icon:=Form1.Icon, _                                  Tip:=s)             i = Shell_NotifyIconA(NIM_ADD, nid)         End Sub         Private Sub Command2_Click()             'Modify an existing icon. This procedure uses the icon             'specified in the Icon property of Form1. This can be modified             'as desired.             Dim i As Integer             Dim s As String             Dim nid As NOTIFYICONDATA             s = InputBox("Enter string:")             nid = setNOTIFYICONDATA(hWnd:=Form1.hWnd, _                                     ID:=vbNull, _                                     Flags:=NIF_MESSAGE Or NIF_ICON _                                     Or NIF_TIP, _                                     CallbackMessage:=vbNull, _                                     Icon:=Form1.Icon, _                                     Tip:=s)             i = Shell_NotifyIconA(NIM_MODIFY, nid)         End Sub         Private Sub Command3_Click()             'Delete an existing icon.             Dim i As Integer             Dim nid As NOTIFYICONDATA          nid = setNOTIFYICONDATA(hWnd:=Form1.hWnd, _                                  ID:=vbNull, _                                  Flags:=NIF_MESSAGE Or NIF_ICON _                                  Or NIF_TIP, _                                  CallbackMessage:=vbNull, _                                  Icon:=Form1.Icon, _                                  Tip:="")          i = Shell_NotifyIconA(NIM_DELETE, nid)      End Sub					
  8. 按 F5 键或从运行该应用程序运行菜单中选择开始。单击第一个按钮,然后输入要添加图标的文本字符串。单击要修改一个现有的图标和三个为删除图标第二个按钮。
参考
高手 Visual Basic,罗斯向她提议去共度 McKinney 微软出版社 1995年。

Microsoft Win32 SDK、 Shell_NotifyIcon 和 NOTIFYICONDATA。

Microsoft 系统日志,二月 1996 的可视程序员页 93。

Visual Basic 程序员 1996 年三月的日记问答,页 136。

有关更多的信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
162613如何操作 Visual basic 系统托盘中的图标
系统任务栏

警告:本文已自动翻译

属性

文章 ID:149276 - 上次审阅时间:02/22/2014 04:25:31 - 修订版本: 3.1

Microsoft Visual Basic 4.0 标准版, Microsoft Visual Basic 4.0 专业版, Microsoft Visual Basic 4.0 32-Bit Enterprise Edition, Microsoft Visual Basic 5.0 学习版, Microsoft Visual Basic 6.0 学习版, Microsoft Visual Basic 5.0 专业版, Microsoft Visual Basic 6.0 专业版, Microsoft Visual Basic 5.0 企业版, Microsoft Visual Basic Enterprise Edition for Windows 6.0

  • kbnosurvey kbarchive kbmt kbapi kbhowto KB149276 KbMtzh
反馈