Как использовать значки с Windows 95/98/Me задач области уведомлений

Переводы статьи Переводы статьи
Код статьи: 149276 - Vizualiza?i produsele pentru care se aplic? acest articol.
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Развернуть все | Свернуть все

В этой статье

Аннотация

Добавление, изменение и удаление значков из панели задач и области уведомлений панели задач, доступных в Windows 95, Windows 98, Windows Me, Windows NT 4.0 и Windows 2000 оболочки позволяет Windows API. Эта функция может быть предоставлена с помощью функции Shell_NotifyIcon, экспортируемых посредством Shell32.dll. Эта функция API-Интерфейс также предоставляет возможность указать строку текста для всплывающей подсказки, отображаемый, когда пользователь останавливает указатель мыши на значок. Пошаговые инструкции в этой статье создается программы на Visual Basic, в которых демонстрируется использование этой функции API.

Возможность выполнения некоторых действий, если щелкнуть значок в области уведомлений панели задач, зависит от функции обратного вызова. Поскольку Visual Basic 4.0 непосредственно не поддерживает функции обратного вызова, не существует способ отображения форм или выполнения определенного кода с помощью исключительно Visual Basic версии 4.0. Эта функция была добавлена в Visual Basic 5.0 (или более поздней версии) с добавлением оператора AddressOf. Ряд параметров, доступных для разработчиков Visual Basic 4.0, можно указать функции обратного вызова, включая сообщения Blaster OCX, OCX, упомянутых в статье Microsoft Systems Journal, указаны в разделе «Ссылки» данной статьи, или обратный вызов OLE сервера, описанных в книгу Брюса McKinney,Огромные Visual Basic.. Для получения дополнительных сведений для какого-либо из этих параметров в разделе «Ссылки». Поскольку эти продукты не включайте в Visual Basic, технической поддержки корпорации Майкрософт не поддерживает их использования.

Дополнительная информация

В следующем примере создается проект Visual Basic из формы, показано использование функции Shell_NotifyIcon API.

Пошаговый пример

  1. Для запуска Visual Basic. По умолчанию будет создана форма Form1..
  2. Измените свойства формы значок на значок, который будет отображаться в области уведомлений панели задач.
  3. Нарисуйте три CommandButtons в форму.
  4. Выберите модуль из меню "Вставка" для добавления в проект код одного модуля.
  5. Добавьте следующий код, состоящий из функции, тип и объявления констант в Module1:
          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 Microsoft Press 1995 г.

Microsoft Win32 SDK, Shell_NotifyIcon и NOTIFYICONDATA.

Журнал системы Microsoft страницы февраля 1996 года программистов Visual, 93.

Visual Basic программист журнал марта 1996 года Q&A страницы 136.

Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
162613Как манипулировать значки в панели задач с помощью Visual Basic

Свойства

Код статьи: 149276 - Последний отзыв: 23 февраля 2014 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Ключевые слова: 
kbnosurvey kbarchive kbapi kbhowto kbmt KB149276 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:149276

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com