Newsgroup: it.comp.lang.visual-basic
Titolo: Resize bloccato

Salve! :)
Volevo sapere se qualcuno ha idea di come implementare il blocco del 
resize di un form quando le dimensioni abbiano raggiunto un certo limite.
Ad esempio con Winamp (per fare un nome a caso) se cerco di resizare il 
form principale accorciandolo al di sotto di un certo limite, la 
finestra rimane fissa anche se cerco di muovere il mouse.
Come posso farlo in VB?
Thx in anticipo!
-- 
Quando noi ignoranti eravamo di più, tutto era più bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|

 resize di un form quando le dimensioni abbiano raggiunto un certo limite.
il metodo più veloce è quello di intercettare l'evento resize del form, se
le dimensioni sono inferiori a quanto richiesto, le forzi al valore minimo.
pare esistano metodi più raffinati, ma personalmente non credo ne valga la
pena
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 pena
Dipende da quanta importanza si dà all'estetica.
Ad esempio io non ritengo abbastanza "professionale" (per i miei gusti) la prima
proposta e preferisco affrontare il subclassing per ottenere un risultato
esteticamente decente:
http://support.microsoft.com/kb/185733/EN-US/
Bye
Raf

 pena
Si in effetti è quello che faccio.
Siccome al resize devi spostare un po' di oggetti tipo le dimensioni di 
una listview, posizione di alcuni command button OK, Annulla che devono 
stare al centro del form (orizzontalmente intendo), allora controllo 
Width e Height del form; in caso siano inferiori alle dimensioni minime 
le imposto a questi valori.
Però il form refresha in una maniera sgradevole...


Uhm... Questa č interessante.
Devo trovare il modo piů semplice per adattare il codice a un progetto 
in cui molti form hanno delle proprie dimensioni minime.
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).


 in cui molti form hanno delle proprie dimensioni minime.
Se vuoi un suggerimento, io uso una tecnica simile a questa:
- nel modulo .bas in cui si trova la WindowProc definisco una keyed collection
che permette di associare ciascun form da "agganciare" per controllarne le
dimensioni alla propria hWnd (la key del singolo item è la sua proprietà hWnd).
- ogni form implementa (ad es. tramite un'opportuna interfaccia):
  1. un metodo pubblico GetMinSize che ritorna i valori minimi di Width ed
Height.
  2. una proprietà Read/Write pubblica PrevWndProc che contiene il vecchio
valore della WindowProc associata
- Nell'evento _Load di ogni form da controllare, lo si aggiunge alla collection
e si salva il valore della vecchia WndProc:
    frm.PrevWndProc = SetWindowLong(frm.hwnd, GWL_WNDPROC, AddressOf WindowProc)
- Nella WindowProc, dato l'hWnd si ricava (tramite la keyed collection)
l'istanza del form relativo e si chiama il metodo GetMinSize
- Nell'evento _Unload occorre ricordarsi di terminare il subclassing
ripristinando il vecchio valore di WndProc:
    Temp = SetWindowLong(frm.hwnd, GWL_WNDPROC, frm.PrevWndProc)
HTH
Raf

Uhm... salverň questi post su disco, cosě nei ritagli di tempo mi 
dedicherň a queste cosettine non proprio indispensabili ma utili ;)
Thx a tutti cmq!
