Avatar billede medjeti Nybegynder
23. november 2000 - 02:18 Der er 18 kommentarer og
1 løsning

Minimere til SysTray Part 2

(Fortsat fra <a href=\"http://www.eksperten.dk/spm/34557\">http://www.eksperten.dk/spm/34557</a>)

Ok, den minimerer og maksimerer fint nu... Næste hurdle: At skifte ikonet (og mouseover-teksten) i SysTray\'en når man dobbeltklikker på ikonet...

*** *** ***
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Select Case msg
      Case WM_LBUTTONDBLCLK
      If timDisplay.Enabled = False Then \'START

        * SKIFT TIL IKON2 *

      ElseIf timDisplay.Enabled = True Then \'STOP   

        * SKIFT TIL IKON1 *

      End If
  End Select
End Sub
*** *** ***


Mit module ser sådan her ud:

*** *** ***
      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
      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
*** *** ***

På forhånd tak... :o)
Avatar billede tdaugaard Nybegynder
23. november 2000 - 02:55 #1
Nu er det jo ikke ligefrem nogen fyrstelig \"løn\", men jeg prøver lige at bikse noget sammen til dig .. jeg ved godt hvordan man gør, men det er nemmere at vise en forklare.
Avatar billede medjeti Nybegynder
23. november 2000 - 03:04 #2
Okidoki... det var ikke for at være fedtet, jeg vidste ikke lige hvor bøvlet det var ... :o)
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:07 #3
*g* nu får jeg det helt dårligt med mig selv .. :( det var ikke for at beklage mig (kun lidt *s*)..
det er ikke SÅ besværligt igen, men det er dog sværere end 30 point.

Jeg er i fuld sving..
forresten .. timDisplay er en timer, ikke ?
Avatar billede medjeti Nybegynder
23. november 2000 - 03:12 #4
Jep... det er en slags udvidet stopur. Her genbruger jeg bare timeren til at finde ud af om stopuret kører eller ej.
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:13 #5
Okai .. fino .. jeg tror der går max en halv time før det er klart .. hvis ikke der er noget der driller ..
Avatar billede medjeti Nybegynder
23. november 2000 - 03:19 #6
Cool... nu ikke sætte alt andet i stå bare fordi jeg ikke har sat mig ordentligt ind i tingene ... :o)
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:20 #7
*s* alt andet ? nåå .. du mener min nattesøvn .. ski\' være med den *g* jeg går ikke i seng før kl. alt for sent i morgen formiddag anyway :)
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:28 #8
Tjaa .. det var så det ..
Jeg har gjort det nemt for dig med en SUB ChangeIcon der kan skifte ikonet at runtime. Ikonerne kan du have i PictureBoxe.

Det eksempel jeg har lavet ligger på

http://www.tdaugaard.dk/x/vb_systray.zip
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:29 #9
Nu er jeg træt .. det skulle se\'følig ha\' været et svar..
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:31 #10
I tilfælde af at du bruger VB 5.0 så skal du åbne Project1.vbp i f.eks. DOS EDIT og fjerne den linie hvorpå der står:

Retained=0

det fatter VB 5.0 ikke.
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:33 #11
Hvis der er problemer med koden spørger du bare..
Avatar billede medjeti Nybegynder
23. november 2000 - 03:36 #12
Lækkert, tak for hjælpen :o)
Avatar billede tdaugaard Nybegynder
23. november 2000 - 03:37 #13
Det var så lidt :)
Avatar billede medjeti Nybegynder
23. november 2000 - 04:15 #14
Okay, jeg har fået den til at køre uden fejl ... Måske et dumt spørgsmål: MEN hvordan er det så jeg får picIcon(0) og (1) vist som ikoner i SysTray\'en? Den viser stadig bare mit default-ikon...
Avatar billede medjeti Nybegynder
23. november 2000 - 04:20 #15
Jeg er tvivl om hvor meget af den gamle kode jeg skal beholde...
Den originale Form_Load:
*** *** ***
    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 = \"Fisse\" & vbNullChar
        End With
    Shell_NotifyIcon NIM_ADD, nid
*** *** ***
Avatar billede medjeti Nybegynder
23. november 2000 - 04:54 #16
Tror jeg er ved at få skovlen under den... :o)
Avatar billede tdaugaard Nybegynder
23. november 2000 - 05:21 #17
Du må meget undskylde, men jeg var nødt til at gå i seng da jeg skulle op nu en time senere..

Du skal slet ikke beholde noget af din originale kode.
Jeg har lavet det så den passer til dit program (altså lidt en del af koden fra det første spørgsmål og noget fra der her)

I modulet er der en SUB der hedder ChangeIcon(). Den bruger du til enten at vise eller ændre et nuværende vist ikonog dets tooltip.
Avatar billede tdaugaard Nybegynder
23. november 2000 - 05:24 #18
Rettelse: Hvis det, du allerede havde, kun var det til at \"bruge\" tray ikone, SÅ skal du ikke bruge noget af din gamle kode.

Ellers så send din gamle kode til e@tdaugaard.dk, så skal jeg nok flette det sammen for dig :)
Avatar billede medjeti Nybegynder
23. november 2000 - 20:13 #19
No prob, det ruller nu... :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester