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

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

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 작업 표시줄 알림 영역에 있는 아이콘을 사용하는 방법
작업 표시줄

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 176085 - 마지막 검토: 12/05/2015 08:09:13 - 수정: 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

  • kbnosurvey kbarchive kbmt kbbug kbhowto KB176085 KbMtko
피드백