Newsgroup: it.comp.lang.visual-basic
Titolo: form sempre in primo piano

    come si fa a creare un form sempre in primo piano sullo schermo ?
anchese il mouse clicca su altri form?
giuseppe

 anchese il mouse clicca su altri form?
ciň che vuoi fare č contrario al MultiTasking; prova cmq a subclassare la
form per intercettare il messaggio WM_ACTIVATE, se wParam <> WA_ACTIVE e
wParam <> WA_CLICKACTIVE significa che la tua finestra č passata in secondo
piano. a questo punto potresti fare un SetForegroundWindow passandogli
l'hWnd della tua form, per riportarla in primo piano
Ciao
Faber

anchese il mouse clicca su altri form?
'Metti tutto in un modulo.
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As
Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
'Qesta sub imposta la form sempre in primo piano se flag=true,
'altrimenti come una qualsiasi
Sub SetSemprePrimoPiano(frm As Form, flag As Boolean)
 
    Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
 
    Dim success As Boolean
 
    If flag Then
        'set the form frm to TOPMOST
        success = SetWindowPos(frm.hwnd, HWND_TOPMOST, 0, 0, 0, 0,
FLAGS)
    Else
        'reset the form frm to NOTOPMOST
        success = SetWindowPos(frm.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0,
FLAGS)
    End If
End Sub
'e poi richiama la sub da un form.
---
Vorrei vedere le piramidi di Cheope,
ma sono miope, ma sono miope.
---

 > anchese il mouse clicca su altri form?        <-----------
Faber

anchese il mouse clicca su altri form?
Beh, se una finestra è "Sempre in primo piano" resta tale indipendentemente dall'applicazione che ha
il fuoco ed il codice lo puoi trovare sul mio sito o tra le altre risposte...
Se invece vuoi che la form, oltre ad essere sempre in primo piano, abbia anche il "fuoco perenne"
(che non è l'inferno... ci basta un SO infernale...), allora, come dice Faber, è contrario ai
principi del MultiTasking (anche se ancor più contrario a tali principi è WinBug 98...)
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 principi del MultiTasking (anche se ancor più contrario a tali principi è
WinBug 98...)
Ti dirò... ho sperimentato cose allucinanti di persona, devo dire che WindBlows
non se la cava malaccio, sono arrivato ad avere due finestre di WinZip a
masticare in background, Trova File a muggire un po' anche lui, Corel PHOTOPAINT
con la solita immagine da X megabyte (dove X è un intero compreso tra 20 e 100)
sotto i ferri, AtGuard a rompermi le palle ogni due secondi con l'Ad Blocker
(che NON funziona), ICQ che solo all'avvio ti declassa il processore di quattro
generazioni, GetRight a scaricare un pezzetone da 90 (dicesi 90) mega, e il
Misuratore Risorse mostrava ancora un rassicurante colorito verde. Il
guastafeste è Outlook Express: il Blue Screen è assicurato all'80%, dopo
ovviamente aver visto il Misuratore Risorse sbiancare completamente, i programmi
bloccarsi uno dopo l'altro, la connessione cadere e il font Tahoma delle
finestre trasformarsi nel sedicibittiano MS Sans Serif grassetto. Non c'è da
stupirsi: l'eseguibile, MSIMN.EXE, è già 41 kb, a cui si aggiungono i 21 kb
della Rubrica, 2 mega e oltre di DLL, senza considerare le Visual C++ Runtime,
gli svariati megabyte dell'engine di Internet Explorer che puntualmente
Guardafuori Espresso mette in movimento, e gli altri mega di dbx: un programma
del genere si può mica permettere 30 finestre, di cui (almeno) una di IE, e 7
thread???