Newsgroup: it.comp.lang.visual-basic
Titolo: Form mdiChild minimizzata

Se ho una form MDIMain con delle child al suo interno, quando minimizzo 
una child mi viene 'ridotta' con solo parte della barra del titolo.
C'e' un sistema per 'trasformarla' in un'icona quando la minimizzo? In 
parole povere, gestire l'interno della MDIMain come se fosse una 
listview in modalita' lvwIcon (con le icone 32x32). Un po' come faceva 
Windows 3.1 quando minimizzavi un programma, e ti dava l'icona sul 
desktop...
Bye by SixaM 8-]

 ha scritto nel messaggio 
news:h4bsk0$cnm$1...@tdi.cu.mi.it...

Non escludo che con una chiamata alle API si possa cambiare il tipo di 
visualizzazione della window minimizzata, ma appunto era un display tipico 
del desktop di Win32, non credo proprio che se lo siano portato dietro. 
Qualcosa di simile tuttavia si fa con il systray, quindi non � da 
escludersi.
Quello che potresti fare (se non trovi una soluzione pi� elegante) �:
A. aggiungere un controllo all'MDI (
p.es
. una listview in un pannello 
laterale) dove visualizzi tu le icone dei children che fai sparire quando 
vengono minimizzati; quando l'utente clicca sull'icona, la togli dal 
listvioew e visualizzi la child.
oppure:
B. quando la child viene minimizzata fai una resize a 32x32, togli caption e 
bordo e visualizzi solo un'icona (
p.es
. in una picture resa visibil eper 
l'occasione, facendo attenzione a disabilitare altrio controlli)
Non � bello ma pu� funzionare.
NB: non ho provato niente di tutto questo per cui � possibile che ci siano 
difficolt� a eseguire alcune di queste operazione su un mdi-child.
Ciao,
Stefano

 
Bye by SixaM 8-]
P.S. Nel frattempo avevo provato con una form di appoggio, 
ridimensionata a 32x32, che richiamavo all'evento Resize della mia form 
da 'iconizzare'. Funzionava, ma non avevo molto controllo sulla 
posizione dell'icona


se riduco a icona e la "posiziono" sulla systray, per riattivare a grandezza 
normale il form posso anche cliccare l'icona del desktop oppure posso solo 
usare l'icona della systray?
Se fosse possibile la prima ipotesi avrebbe risolto no?

 Se fosse possibile la prima ipotesi avrebbe risolto no?
Quando si chiede il ripristino di una form minimizzata ï¿½ il sistema che fa 
tutto (noi possiamo solo rilevare la resize). A questo punto posso togliere 
l'icona dal systray.
Quando clicco sull'icona del systray, il sistema non fa niente eccetto 
inviare i messaggi del caso alla form che ha generato l'icona (mousedown, 
mouseup etc.) per cui sta alla form fare la resize e quindi togliere l'icona 
dal systray.
Si puï¿½ quindi fare la stessa cosa da entrambi i punti.
Solo che non so quanto sia pratico usare il systray in questo modo. A parte 
che le icone potrebbero essere molte, l'uso del systray ï¿½ normalmente quello 
di mettere una sola icona per applicazione quando questa sta normalmente 
nascosta (un servizio o comunque un processo in background). Invece nell'uso 
comune i children di un mdi devono rimanere, in qualsiasi circostanza 
all'interno della form principale.
(Il mio esempio era in effetti poco pertinente perchï¿½ il systray ï¿½ un'area 
gestita interamente da WinExplorer tramite apposite API e non ha a che 
vedere con lo stato delle form, tant'ï¿½ che puoi avere l'icona nel systray e 
la relativa form a pieno schermo).
Ciao,
Stefano

mi ero introdotto nel discorso perch� st� cercando una soluzione a questo 
"problema":
- icona sul desktop che mi lancia pippo.exe
- avvio pippo.exe che mi mostra il suo form
...... lavoro....
- l'utente riduce a icona dal form e il programma f� visualizzazione della 
sua icona sulla  barra win = False
(quindi a questo punto non � presente nulla sulla barra win, il form � 
nascosto e l'applicazione e in esecuzione).
- ora voglio che l'utente fadendo il classico doppio clic sull'icona del 
desktop l'appicazione (che � ancora in esecuzione) mi ridimensione il form.
Si puo' fare una cosa del genere ?

 Si puo' fare una cosa del genere ?
Guarda questo:
http://vbnet.mvps.org/index.html?code/helpers/restorehwnd.htm
Credo sia esattamente quanto ti serve: se l'applicazione ï¿½ giï¿½ in esecuzione 
la ripristina sullo schermo e chiude la nuova istanza.
Ciao,
Stefano


grazie.