Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Ridurre un Soft a IconTray e poterlo riaprire
Forum - Visual Basic 6 - Ridurre un Soft a IconTray e poterlo riaprire - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 8:07
Venerdì, 11/09/2009
ricapitolando ecco cosa ho fatto e modificato:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Timer1_Timer()
  2.     'Cicla le icone
  3.     Static mPic As Integer
  4.     Me.Icon = imgIcon(mPic).Picture
  5.     TrayI.hIcon = imgIcon(mPic).Picture
  6.     mPic = mPic + 1
  7.     If mPic = 14 Then mPic = 0 ' cicla 15 icone e si azzera per ricominciare
  8.     Shell_NotifyIcon NIM_MODIFY, TrayI
  9. End Sub



Codice sorgente - presumibilmente VB.NET

  1. Public Sub AddToTray(Form1 As Form, ToolTip As String, Icon)
  2.  
  3.     On Error Resume Next
  4.     TrayI.cbSize = Len(TrayI)
  5.     TrayI.hWnd = pichook.hWnd 'Linka la trayicon in questa picture
  6.     TrayI.uId = 1&
  7.     TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
  8.     TrayI.ucallbackMessage = WM_LBUTTONDOWN
  9.     TrayI.hIcon = imgIcon(2).Picture ' questo gestisce insieme al TIMER,14 icone
  10.     TrayI.szTip = "Fatturazione" & Chr$(0)' aggiungo Chr$ per evitare caratteri strani
  11.     'Creo l'icona
  12.     Shell_NotifyIcon NIM_ADD, TrayI
  13.     Form1.WindowState = vbNormal ' setto lo stato Normal
  14.     Me.Hide
  15.     End Sub


Dopodiche',su tuo consiglio
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Resize()
  2.     If Form1.WindowState = vbMinimized Then 'se cliccl MINBUTTON
  3.     AddToTray Form1, "Fatturazione", TrayI.hIcon
  4.       End If
  5.    End Sub


premendo il MINBUTTON si riduce correttamente ad icona
Ora devo gestire l'evento doppio click sulla ICONTRAY per riaprire il soft e qui casca l'asino,
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_MouseUp(TrayI As Integer, Shift As Integer, x As Single, y As Single)
  2.     If TrayI = vbLeftDoubleButton_Click Then
  3.         Form1.WindowState = vbNormal
  4.       End If
  5. End Sub


Cosi' non funziona.
Ho cercato cosa potesse comandare il mouse ed ho trovato l'Evento MOUSEUP,ho tentato qualche combinazione ,ma sinceramente non conosco troppo il comando e vado per tentativi e so di sbagliare
Puoi aiutarmi in questo?

Per esempio ,se volessi includere anche un popmenu' questo lo dovrei scrivere diversamente avendo gia' tutto nel FORM1
Codice sorgente - presumibilmente Plain Text

  1. form1.popupmenu form2.NomeMenu 'devi creare un form2 con il menu





Ciao


Ultima modifica effettuata da fusebyte il 11/09/2009 alle 11:14
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 10:49
Venerdì, 11/09/2009
la sub interessata non è il mouseup ma il mousemove


Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Msg As Long
Msg = X / Screen.TwipsPerPixelX
If Msg = WM_LDBCLICK Then 'click tasto sinistro
'CODICE per far apparire un menù
form1.popupmenu form2.NomeMenu 'devi creare un form2 con il menu
'CODICE per farlo tornare normale:
'Form1.WindowState = vbNormal
'Call RemoveFromTray
'Form1.Show
'--------------
End If
End Sub

te lo avevo scritto all'inizio... il codice quindi è:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Msg As Long
Msg = X / Screen.TwipsPerPixelX
If Msg = WM_LDBCLICK Then 'click tasto sinistro
Form1.WindowState = vbNormal
Call RemoveFromTray
Form1.Show
End If
End Sub

PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 11:10
Venerdì, 11/09/2009
Non è che non ti voglio dare retta,è che non funziona,per questo ho tentato di provare altro.
Io inserisco come mi suggerisci:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. Dim Msg As Long
  3. Msg = X / Screen.TwipsPerPixelX
  4. If Msg = WM_LBUTTONDBLCLK Then 'click tasto sinistro
  5. Form1.WindowState = vbNormal
  6. Call RemoveFromTray
  7. Form1.Show
  8. End If
  9. End Sub


perche' ho dichiarato
WM_LBUTTONDBLCLK = &H203
ma la sostanza non cambia,quello che conta e' il &H203.

Non capisco perche' una volta MINIMIZZATO non risponde ne a click DX che a click SX del Mouse e come detto,devo aprire il TASK per chiuderlo.

Se il codice fosse errato non dovrebbe neanche ridursi a icona,invece fino a quel punto
il codice funziona.
E' questo MouseMove che non vuole andare.

Potrebbe il problema essere,che ci sono 15 icone che ciclano come ben vedi nel Timer?
PS:(No,ho messo un Timer1.Enabled = False,in modo da avere un'icona fissa ma il mouse continua a non rispondere ne a DX ne a SX sopra la icontray)

Ciao

Ultima modifica effettuata da fusebyte il 11/09/2009 alle 11:23
PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 11:21
Venerdì, 11/09/2009
Senza nulla togliere a GRG,che non so come ringraziare per gli aiuti che mi sta dando, ma TheProgrammer che ne pensa? :-))


Ciao

Ultima modifica effettuata da fusebyte il 11/09/2009 alle 11:22
PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 13:03
Venerdì, 11/09/2009
cmq come ultima prova, lasciando il timer disattivato quindi mantenendo un'icona prova a creare un form2 in cui inserisci un menu e poi usi il codice

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Msg As Long
Msg = X / Screen.TwipsPerPixelX
If Msg = WM_LDBCLICK Then 'click tasto sinistro
form1.popupmenu form2.NomeMenu 'devi creare un form2 con il menu
End If
End Sub

se manco questo non ti funziona ti faccio un esempio che a me funziona e te lo allego al prossimo topic.

PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 14:27
Venerdì, 11/09/2009
Neanche cosi'.
ho creato il form4 (il Form2 è gia impegnato)
Ho creato un menu popup
ho sostituito il FORM1 con il FORM 4
Public Sub AddToTray(Form4 As Form, ToolTip As String, Icon)
ho impostato il Timer.Enable =False

Ora ho un'icona fissa
Premo MINBUTTON si riduce ad icona
Clicco DX per vedere il menu popup..niente
Clicco SX per riaprire il soft...niente


C'è da diventare matti.


PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 14:45
Venerdì, 11/09/2009
ho realizzato un piccolo esempio funzionante (almeno per me) vedi tu, se non ti funziona non saprei proprio che dirti :-|


GrG ha allegato un file: ExampleTray.zip (7336 bytes)
Clicca qui per scaricare il file
PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 19:38
Venerdì, 11/09/2009
Funziona tramite menu popup con click DX  e scegli "mostra" per riaprire il soft.
Prova a fare click o doppio click sulla ICON TRAY.non si apre.
Quello è il mio problema.
A prescindere che potrei risolvere col menu popup,come si fa a far funzionare il doppio clickper riaprire il soft?

Saputo questo,ho esaurito le richieste :-)))
Pero' cercherei questo in una semplice funzione senza legarsi a Form o altro.


Ti posto un esempio funzionante senza FORM e che funziona col doppio click.
Non riesco pero' ad adattarlo al mio codice(l'ultimo code che ho postato),perche' questo si basa su un "controllo utente" e le icone sono messe "fuori Form",mentre io le ho "dentro il Form".
Se riuscissi ad estrarre la parte del double click adattato al mio codice ,abbiamo risolto.
Naturalmente continuo a provare pure io.
Ciao


fusebyte ha allegato un file: ICONTRAY Apre e Chiude Soft da Icona.zip (8285 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da fusebyte il 11/09/2009 alle 19:53
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo