Gå til innhold

Tray icon og showintaskbar=false


Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet

Det blir ikke noe "seek bar" når jeg minimerer, men lenger kommer jeg ikke. Hvordan får jeg formen opp igjen når jeg dobbel klikker på iconet?

Skrevet

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

Skrevet (endret)

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
Skrevet

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.

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å
×
×
  • Opprett ny...