CAFE

vb6 api

Shell_Notifyicon

작성자프랭크핀|작성시간09.01.30|조회수195 목록 댓글 0

Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" _
       (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
      
Const NIM_ADD = &H0
Const NIM_DELETE = &H2
Const NIM_MODIFY = &H1
Const NIF_ICON = &H2
Const NIF_MESSAGE = &H1
Const NIF_TIP = &H4
Const WM_USER = &H400
Const ABM_GETTASKBARPOS = &H5

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Type APPBARDATA
        cbSize As Long
        hwnd As Long
        uCallbackMessage As Long
        uEdge As Long
        rc As RECT
        lParam As Long '  message specific
End Type
Private 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

Dim StrBar As APPBARDATA
Dim StrNotify As NOTIFYICONDATA
Dim AddIcons As Long
Dim UseIcons As Long

Private Function AllRemove(Toticon As Long)
'/모든 아이콘 삭제

    For i = 1 To Toticon
        StrNotify.uID = i
        Shell_NotifyIcon NIM_DELETE, StrNotify
    Next i
           
End Function

Private Function FuncAppBar()
'/작업 표시줄 표시 여부
   
    StrBar.cbSize = 36&
   
    FuncAppBar = SHAppBarMessage(ABM_GETTASKBARPOS, StrBar)
   
End Function

Private Sub CmdAdd_Click()
'/아이콘 추가
   
    Dim Hdlicon As Long
    Dim tMsg As String
   
    '/Image 선택
    UseIcons = UseIcons + 1
    If UseIcons = 4 Then
        UseIcons = 1
    End If
       
    Hdlicon = Image1(UseIcons).Picture
   
    '/추가된 아이콘 번호
    AddIcons = AddIcons + 1
   
    tMsg = "아이콘 번호는 " & CStr(AddIcons)
   
    '/구조체 정보 Set
    StrNotify.uID = AddIcons
    StrNotify.HICon = Hdlicon
    StrNotify.szTip = tMsg
    StrNotify.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
   
    '/ 아이콘 추가
    Shell_NotifyIcon NIM_ADD, StrNotify
       
End Sub

Private Sub CmdModify_Click()
'/아이콘 모양 변경

    Dim Hdlicon As Long
    Dim hID As Long
   
    hID = Val(InputBox("변경할 아이콘 번호:", ""))
    If hID = 0 Then Exit Sub
       
    '/Image 선택
    UseIcons = UseIcons + 1
    If UseIcons = 4 Then
        UseIcons = 1
    End If
       
    Hdlicon = Image1(UseIcons).Picture
   
    '/구조체 정보 Set
    StrNotify.uID = hID
    StrNotify.HICon = Hdlicon
    StrNotify.uFlags = NIF_ICON
   
    '/아이콘 변경
    Shell_NotifyIcon NIM_MODIFY, StrNotify
  
   
End Sub

Private Sub CmdDelete_Click()
'/아이콘 삭제

    Dim Hdlicon As Long
    Dim hID As Long
   
    hID = Val(InputBox("삭제할 아이콘 번호:", ""))
    If hID = 0 Then Exit Sub
       
    '/구조체 정보 Set
    StrNotify.uID = hID
   
    '/ 아이콘 삭제
    Shell_NotifyIcon NIM_DELETE, StrNotify
   
End Sub

Private Sub CmdExit_Click()
'/종료
    AllRemove (AddIcons)
    End
End Sub

Private Sub Form_Load()
   
    '/작업표시줄 존재여부
    If FuncAppBar <> 1 Then
        MsgBox "작업 표시줄이 없습니다."
        '/현재 시스템의 모든 트레이 아이콘을 삭제
        AllRemove (AddIcons)
        Exit Sub
    End If
   
    '/NOTIFYICONDATA 구조체 Setting
    StrNotify.cbSize = 88&
    StrNotify.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
    StrNotify.uCallbackMessage = WM_USER + &H201
    StrNotify.szTip = ""
    StrNotify.hwnd = Me.hwnd
       
    UseIcons = 0
    AddIcons = 0
       
End Sub

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼