Newsgroup: it.comp.lang.visual-basic
Titolo: [Req] per esperti Tray-Bar (lunghetto)

Salve a tutti
il mio problema é il seguente:
In un mio programma volevo
gestire un icona nella tray bar, e leggendo sul newsgroup ho visto come si
fa (ho spulciato anche qua e la per la rete) ho trovato degli esempi e li
ho integrati nel programma.
Ora cosa accade: l'icona nella tray ci va ma
se volessi cliccare per ottenere un menu' pop non mi viene fuori e in debug
ho visto che non viene generato l'evento.
Ho utilizzato (salto gli altri)
questi parametri per inizializzare la Shell_NotifyIcon
 
    .uFlags =
NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    .uCallbackMessage = WM_MOUSEMOVE
ma l'evento form_MouseMove non viene generato, se invece provo a usare
.uCallbackMessage = WM_KEYDOWN
l'evento form_KeyDown viene generato, ma
mi ritorna sempre 1 nel KeyCode e 0 in Shift sia che ci passi sopra
l'icona, sia che clicchi con i tasti Dx o Sx.
Perché ??
Aggiungo che
nel modulo uso (per altri motivi) gli eventi Form_MouseMove e
Form_DragDrop, e che provando a fare un altro programma il tutto funziona.
Mi potete aiutare?
--------------------------------
Inviato via 
http://usenet.iol.it

Mi potete aiutare?
mmm.... può darsi che tu invii il messaggio WM_MouseMove alla form, la
quale lo intercetta ed esegue il codice relativo all'evento associato.
Prova allora a non utilizzare quel messaggio come callback, ma uno
definito da te che poi andrai a processare in una nuova window
procedure: un esempio lo trovi sul mio sito.
Ciao,
Moreno
#sirri#@#
morenosoft.com#
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------

On Thu, 06 Sep 2001 07:36:17 GMT, 
bing...@ciaoweb.it
 (VincenzoF) wrote:
[...]
P.S.:
In questo NG non usiamo il [Req] per le domande ma [?]... l'importante è
capirci, ok, hai fatto bene, ma se magari ti ricapita di frequentare
questo ng, dai un'occhiata al Manifesto che trovi sul Sito COmune: ti
potrà tornar utile...
Poi, evitiamo, please, etichette tipo "per esperti", "per tizio", "per
caio": possono far girare le scatole e mettere a disagio "sempronio",
"tizio", "caio", un esperto, un meno esperto o anche un cyborg... il ng
è pubblico e le domande postate si rivolgono a chiunque lo legge...


procedure: un esempio
lo trovi sul mio sito.
ho provato il tuo esempio e dopo un po di sudate,
e crisi isteriche pare che qualcosa cominci a funzionare, mi é rimasto un
piccolo problemino:
Perche' quando, in ambiente di sviluppo, do il RUN e
poi voglio uscire dal programma usando il suo bottone o stoppando da
ambiente di programmazione, mi chiude tutto, sia il programma sia VB
?????????????????????
aggiungo qualche altra info:
S.O.  NT 4.0 sp 6
Workstation
VB6 sp4
Ciao...


?????????????????????
Subclassing... :-)
Quando tu termini brutalmente l'applicazione (End o comando Stop
dell'IDE), non viene restituito il controllo alla Window Procedure
originaria:
Private Sub Form_Load()
    lProcOld = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Così subclassti la form utilizzando al wp WindowProc;
dove lProcOld è l'handle della window procedure originaria, mentre
WondowProc è la nuova wp:
Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, _
	ByVal wParam As Long, ByVal lParam As Long) As Long
	'elabori i messaggi
    WindowProc = CallWindowProc(lProcOld, hWnd, uMsg, wParam, lParam)
End Function
Prima di terminare l'applicazione, devi restituire il controllo alla wp
originale:
Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hWnd, GWL_WNDPROC, lProcOld
End Sub
Se non lo fai, la Window Procedure WindowProc ritorna 0, ma Windows si
aspetta un valore diverso da 0, quindi... BOOM! GPF


 :-) Come mai tanta fatica? Mi
sono spiegato male sul sito?
No  e che ogni volta che stoppavo, mi
chiudeva tutto... poi ho capito leggendo l'articolo sul subclassing nel tuo
sito.....
Comunque ora diciamo che al 98% il mio programma funziona ed
anche la gestione della tray.
Ti ringrazio tantissimo per il valido
aiuto.
Ciao.
