Newsgroup: it.comp.lang.visual-basic
Titolo: qualche idea?

Ciao a tutti, quello che ho in mente di realizzare è semplice:
evitare che durante l'elaborazione e quindi durante i vari refresh o
.bookmark=  l'utente non sia costretto a vedere tutti gli aggiornamenti che
avvengono ai controlli (soprattutto con macchine + lente). ho pensato di
"sganciare" momentaneamente i controlli dall'origine per poi riagganciarli a
cose fatte, ma possibile che non vi sia il modo di gestire direttamente il
refresh video in maniera da congelarlo per poi aggiornare il tutto?
Ciao e grazie anticipatamente.
Axelmet

 wrote in message
7ovd7l$otf$1...@aquila.tiscalinet.it...

Dovresti poterlo fare con l'API SendMessage, messaggio WM_Redraw:
Puoi disattivare il refresh dei singoli comandi o di tutto il form,
poi fare un form.refresh oppure uno per uno control.refresh.
Più o meno dovresti fare così (attenzione, codice non collaudato):
-------------------------------------------------------
'(attenzione, codice non collaudato)
'questo va in un modulo
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Const WM_SETREDRAW = &HB
' questo va nella funzione che esegue gli aggiornamenti
'(attenzione, codice non collaudato)
Dim Risultato As Long
' credo che si possa fare anche Screen.
Risultato = SendMessage(Form1.hwnd, WM_SETREDRAW, False, 0)
' qui fai tutto quello che devi fare
Risultato = SendMessage(Form1.hwnd, WM_SETREDRAW, True, 0)
Form1.Refresh
'(attenzione, codice non collaudato)
-------------------------------------------------------
Appropò, ti ho gia detto che questo codice non è collaudato ? ;-)
Una maniera più semplice potrebbe essere quella di settare la
proprietà Visible a False dei controlli, prima degli aggiornamenti
e a true una volta finiti, se durante gli aggiornamenti non fai
nessun DoEvents, il SO non ha la possibilità di farli scomparire,
e gli aggiornamenti sono più veloci. Se però aggiorni molta roba,
non credo che ti convenga fare così.
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi sul
    Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------
Real E-address: 
gaet...@hotmail.com

Eccccellllennnte, La "cosa", anche se mi pare di aver velatamente letto tra
le righe che non fosse testata, funziona. Purtroppo non sull'intera form
(windows si incarta a doppia mappa) ma egregiamente sui singoli controlli.
Grazie, e se posso, a buon rendere.
Axel

 .bookmark=  l'utente non sia costretto a vedere tutti gli aggiornamenti
Hai provato con LockWindowUpdate ?
Per bloccare l'update chiami:
LockWindowUpdate (nomeform.hWnd)
Per sbloccarlo
LockWindowUpdate (0)
La dichiarazione la trovi tra le API.
Ciao
*Roby*
P.S.
Ma sei parente del tuo provider? 8-)

Ma sei parente del tuo provider? 8-)
Bravo, come hai fatto ad indovinare? in effetti è mio cuggggino e lo riporto
nel nick per avere piu credito nella telematica, anzi ti do un gossip: in
realtà sono il figlio del fratello del padre, hai presente quel  bambino di
colore nato da una coppia bianca dopo un viaggio in Africa.......?