Visual Basic에서 직접 시스템 트레이에서 사용하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 176085 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 Windows 시스템 트레이에서 또는 Visual Basic을 사용하여 작업 표시줄 알림 영역 전체 활용하는 방법을 보여 줍니다. 선택한 아이콘이 작업 표시줄 알림 마우스를 위로 rested, 클릭할 때 응용 프로그램 복원 및 팝업 메뉴를 표시할 때 선택한 도구 설명을 표시할 영역에 넣습니다 때 마우스 오른쪽 단추로 클릭한. 직접 콜백을 처리할 수 있기 때문에 Visual Basic 기능을 모두 가능합니다. 그리고 따라서 전체 Shell_NotifyIcon 함수가 있는 활용하여 의해 Shell32.dll 내보내집니다.

추가 정보

다음은 폼이 적어도 하나 및 표준 모듈에 있는 모든 Visual 기본 프로젝트에 추가할 수 있습니다.

단계별 예제

  1. 프로젝트의 표준 모듈에 있는 선언 구역에 다음 코드를 추가하여:
          'user defined type required by Shell_NotifyIcon API call
          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
    
          'constants required by Shell_NotifyIcon API call:
          Public Const NIM_ADD = &H0
          Public Const NIM_MODIFY = &H1
          Public Const NIM_DELETE = &H2
          Public Const NIF_MESSAGE = &H1
          Public Const NIF_ICON = &H2
          Public Const NIF_TIP = &H4
          Public Const WM_MOUSEMOVE = &H200
          Public Const WM_LBUTTONDOWN = &H201     'Button down
          Public Const WM_LBUTTONUP = &H202       'Button up
          Public Const WM_LBUTTONDBLCLK = &H203   'Double-click
          Public Const WM_RBUTTONDOWN = &H204     'Button down
          Public Const WM_RBUTTONUP = &H205       'Button up
          Public Const WM_RBUTTONDBLCLK = &H206   'Double-click
    
          Public Declare Function SetForegroundWindow Lib "user32" _
          (ByVal hwnd As Long) As Long
          Public Declare Function Shell_NotifyIcon Lib "shell32" _
          Alias "Shell_NotifyIconA" _
          (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
    
          Public nid As NOTIFYICONDATA
    					
  2. 시스템 트레이 아이콘 또는 알림 아이콘 응용 프로그램에 응답할 프로젝트에서 모든 폼에 다음 코드를 추가하여:
          Private Sub Form_Load()
           'the form must be fully visible before calling Shell_NotifyIcon
           Me.Show
           Me.Refresh
           With nid
            .cbSize = Len(nid)
            .hwnd = Me.hwnd
            .uId = vbNull
            .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
            .uCallBackMessage = WM_MOUSEMOVE
            .hIcon = Me.Icon
            .szTip = "Your ToolTip" & vbNullChar
           End With
           Shell_NotifyIcon NIM_ADD, nid
          End Sub
    
          Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
          'this procedure receives the callbacks from the System Tray icon.
          Dim Result As Long
          Dim msg As Long
           'the value of X will vary depending upon the scalemode setting
           If Me.ScaleMode = vbPixels Then
            msg = X
           Else
            msg = X / Screen.TwipsPerPixelX
           End If
           Select Case msg
            Case WM_LBUTTONUP        '514 restore form window
             Me.WindowState = vbNormal
             Result = SetForegroundWindow(Me.hwnd)
             Me.Show
            Case WM_LBUTTONDBLCLK    '515 restore form window
             Me.WindowState = vbNormal
             Result = SetForegroundWindow(Me.hwnd)
             Me.Show
            Case WM_RBUTTONUP        '517 display popup menu
             Result = SetForegroundWindow(Me.hwnd)
             Me.PopupMenu Me.mPopupSys
           End Select
          End Sub
    
          Private Sub Form_Resize()
           'this is necessary to assure that the minimized window is hidden
           If Me.WindowState = vbMinimized Then Me.Hide
          End Sub
    
          Private Sub Form_Unload(Cancel As Integer)
           'this removes the icon from the system tray
           Shell_NotifyIcon NIM_DELETE, nid
          End Sub
    
          Private Sub mPopExit_Click()
           'called when user clicks the popup menu Exit command
           Unload Me
          End Sub
    
          Private Sub mPopRestore_Click()
           'called when the user clicks the popup menu Restore command
           Dim Result As Long
           Me.WindowState = vbNormal
           Result = SetForegroundWindow(Me.hwnd)
           Me.Show
          End Sub
    					
  3. 위의 코드를 추가할 같은 폼에 있는 다음 속성 설정 확인합니다:
       Property         Required Setting for Taskbar Notification Area example
       -----------------------------------------------------------------------
       Icon           = The icon you want to appear in the system tray.
       Minbutton      = True
       ShownInTaskbar = False
    					
  4. 같은 폼에 메뉴 편집기를 사용하여 다음 메뉴 항목을 추가합니다:
       Caption      Name          Enabled   Visible   Position
       ---------------------------------------------------------
       &SysTray     mPopupSys      True      False    Main Level
       &Restore     mPopRestore    True      True     Inset one
       &Exit        mPopExit       True      True     Inset one
    					
필요에 따라 추가 메뉴 항목을 추가할 수 있습니다.

작업 표시줄 알림 영역 유연성

알림 위에 나타나는 도구 설명을 수정할 수 Form_Load 프로시저 다음 줄을 변경하여 아이콘:
   .szTip = "Your ToolTip" & vbNullChar
				
"ToolTip" 표시할 텍스트로 바꾸기.

다음 줄에서 Form_Load 프로시저 변경하여 작업 표시줄 알림 영역에 나타나는 아이콘 수정할 수 있습니다:
   .hIcon = Me.Icon
				
Me.Icon 사용하여 프로젝트에서 모든 아이콘 바꾸기.

작업 표시줄 알림 영역 설정의 NIM_ADD 상수의 사용 후 언제든지 nid 변수 값을 다시 할당 및 Shell_NotifyIcon API 호출의 다음 변형을 사용하여 변경할 수 있습니다:
   Shell_NotifyIcon NIM_MODIFY, nid.
				
다른 양식을 콜백, 다음 받도록 하려면 있지만 먼저 현재 아이콘을 삭제하려면 "Shell_NotifyIcon NIM_Delete, nid" NIM_Modify 함수를 새 Hwnd 또는 수락할 때 사용하는 다른 아이콘 시스트레이 새 양식을 사용하는 데 추가해야 합니다 필요한 됩니다 "Shell_NotifyIcon NIM_ADD, nid" 새 형식과 nid refilling 후 Hwnd 형성합니다. 이벤트 순서 NIM_DELETE 및 NIM_ADD 사용하여 Windows 시스템 트레이 아이콘 표시 및 각 양식을 변경해야 할 각 폼을 활성화하는 것은 대한 별도의 복사본이 nid 형식 선언할 수도 있습니다.

참조

시스템 트레이에서 사용하거나 Visual Basic 4.0 또는 이전 작업 표시줄 알림 영역 사용하여 관한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
149276Windows 95/98/Me 작업 표시줄 알림 영역에 있는 아이콘을 사용하는 방법

속성

기술 자료: 176085 - 마지막 검토: 2006년 9월 29일 금요일 - 수정: 2.5
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
키워드:?
kbmt kbbug kbhowto KB176085 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

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