Gå til innhold

Tray icon og showintaskbar=false


Anbefalte innlegg

Hallo

 

Når Jeg minmerer vinduet og lager et tray icon, nede i høyre hjørne, med showintaskbar = true så funker det fint, men da går jo litt av poenget med opplegget bort. Jeg vil ha showintaskbar = false! Men når jeg da minimerer vinduer og lager icon kommer det en liten "Seek bar" i venstre hjørne! Koden for å lage icon er sånn her:

        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 = "Media Player" & vbNullChar
       End With
       
   Shell_NotifyIcon NIM_ADD, nid

Modulen er slik:

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

Public Const NIM_ADD = &H0 'Add to Tray
Public Const NIM_MODIFY = &H1 'Modify Details
Public Const NIM_DELETE = &H2 'Remove From Tray
Public Const NIF_MESSAGE = &H1 'Message
Public Const NIF_ICON = &H2 'Icon
Public Const NIF_TIP = &H4 'TooTipText
Public Const WM_MOUSEMOVE = &H200 'On Mousemove
Public Const WM_LBUTTONDOWN = &H201 'Left Button Down
Public Const WM_LBUTTONUP = &H202 'Left Button Up
Public Const WM_LBUTTONDBLCLK = &H203 'Left Double Click
Public Const WM_RBUTTONDOWN = &H204 'Right Button Down
Public Const WM_RBUTTONUP = &H205 'Right Button Up
Public Const WM_RBUTTONDBLCLK = &H206 'Right 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

Får å se denne "seek baren" se her. Hvordan får jeg den bort?

Lenke til kommentar
Videoannonse
Annonse

Legg til denne koden i ActiveX kontrollen:

 

Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_LBUTTONUP = &H202
Private Const WM_MOUSEMOVE = &H200

Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Event DblClick()

Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Select Case X
Case WM_LBUTTONDOWN
RaiseEvent MouseDown(1, Shift, X, Y)
Case WM_LBUTTONUP
RaiseEvent MouseUp(1, Shift, X, Y)
Case WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK
RaiseEvent DblClick
Case WM_RBUTTONDOWN
RaiseEvent MouseDown(2, Shift, X, Y)
Case WM_RBUTTONUP
RaiseEvent MouseUp(2, Shift, X, Y)
Case WM_MOUSEMOVE
RaiseEvent MouseMove(1, Shift, X, Y)
End Select

End Sub

Lenke til kommentar

Skjedde ingen ting. Hva skal få vinduet opp i den koden der? ser ikke noe show e.l. Prøvde å bytte ut de raiseevent med msgbox, men ingen poppa opp. Hvis jeg gjorde usercontrolen synlig og trykka på den skjedde det heller ingen ting. :(

Endret av Jonas
Lenke til kommentar

Jeg trodde det var innlysende, men ok, jeg skal legge til koden du må skrive inn i formen:

 

Private Sub Tray1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Show

End Sub

 

Denne koden skal du selvsakt legge til etter du har skrevet koden fra den forrige posten inn i ActiveX kontrollen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...