Newsgroup: it.comp.lang.visual-basic
Titolo: evento form PRIMO PIANO

Mi sapreste consigliare su un evento di controllo della messa in primo piano
di un form?
posso controllarlo unicamente con WindowState = vbNormal oppure c'e' qualche
cosa d'altro piu selettivo?
ciao grazie
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 100,000 Newsgroups - 19 Different Servers! =-----

 qualche cosa d'altro piu selettivo?
Se per "primo piano" intendi quando un form diventa il form corrente,
Form_Activate.

 Form_Activate.
Grazie Lupo,
Si da lě "passo" quando cambio form tra uno e l'altro o quando da "chiuso
minimize" lo apro clickando sopra.
Intendo anche quando ad esempio passi da un programma all'altro, senza
chiuderlo e senza minimizzarlo, ma solo clickando sulla barra strumenti dei
vari programmi attivi e passando da uno all'altro.
Il problema č che quando riattivo i miei 5 form si apre solo il principale o
quello che, intravvedendosi sotto qualche altra applicazione attiva in primo
piano ", ci clicko sopra.
Evidentemente dovrei mettere dei vari Form_x.show per portarli tutti
"attivi", ma non so quale evento interessare.
Ciao e tnx!
Anto


 strumenti dei vari programmi attivi e passando da uno all'altro.
E' un problema che non ho mai risolto. L'evento Activate si verifica solo se
si passa da un form a un altro dello stesso EXE, perchè un form di un altro
EXE è e resta attivato se si clicca su un form di un EXE diverso.
Naturalmente, in tali condizioni, non si verifica nemmeno l'evento
DeActivate.
Sarei interessato anch'io a come capire "che un EXE diventa l'EXE corrente
(ovviamente fra due o più in funzione)", indipendentemente dal suo form che
viene attivato...


VB da solo non ci riesce.
Devi subclassare il messaggio WM_APP_ACTIVATE (se ricordo bene il nome).
Prova con il mio controllo di subclassing presente sul sito comune: lui
dovrebbe farcela.
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 dovrebbe farcela.
Grazie per gli aiuti...
brrrr... lo sto cercando sul sito comune... ma non lo trovo...
spero ci sia un esempio... subclassare xme quasi arabo...:-)))
Continuo la ricerca, ciao e grazie per le risposte.


> Continuo la ricerca, ciao e grazie per le risposte.
ri-ciao Zanna,
Sto ancora cercandolo.. non lo trovo, ho trovato solo l'help html di cosa e
come subclassare... :-((
ma non trovo il tuo esempio di "controllo".
tnx!


 ma non trovo il tuo esempio di "controllo".
Scusa il ritardo :P
E' la prima voce che viene fuori cercando "subclass".
Per farlo funzionare devi fare cosě:
' *** Nel form che contiene il controllo
Private AppActivated As Boolean
Private Sub adHook1_AfterMessage(hWnd As Long, wMsg As
ad_Hook13.EWindowMessages, wParam As Long, lParam As Long)
    Select Case wMsg
    Case WM_ACTIVATEAPP
        If (wParam = 1) And (Not AppActivated) Then
            ' Controllo AppActivated perchč il messaggio
            ' č ricevuto da ogni form subclassata
            MsgBox "Applicazione attivata!"
            AppActivated = True
        Else
            AppActivated = False
            ' MsgBox "Applicazione Disattivata!"
        End If
    End Select
End Sub
Private Sub Form_Load()
    adHook1.SetSubClass Me.hWnd
    Load Form2
    adHook1.SetSubClass Form2.hWnd
    Form2.Show
End Sub
' *** Ricodati quando scarichi un form di togliere
'     il subclass!
' Es. per Form2
Private Sub Form_Unload(Cancel As Integer)
    Form1.adHook1.UnSubClass Me.hWnd
End Sub
