Newsgroup: it.comp.lang.visual-basic
Titolo: Form a tutto schermo e sopra la TASK BAR

Gentili iscritti,
- Mi chiedevo come si può far si' che una Form, la principale del mio
progetto, sia a tutto schermo (e questo già avviene) ma al di sopra della
TASK BAR orizzontale di Windows95/98 NT, in pratica la FORM dovrebbe
comportarsi come quando si aprono Internet Explorer o Word: questi
programmi non hanno la FORM principale che sta dietro alla TASK BAR (per
TASK BAR intendo la barra orizzontale di Windows, generalmente grigia, con
il pulsante Start/Avvio).
- C'è un modo per sapere in fase di esecuzione di un progetto qual'è la
dimensione, l'altezza, magari in pixel, di questa TASK BAR? Se lo si
sapesse sarebbe semplice posizionare il FORM a tutto schermo E sopra a
questa TASK BAR e non DIETRO. Oppure esiste qualche altro modo?
Ringraziando anticipatamente per un'eventuale risposta, saluto tutti.
--
_______             __      ® GENERATORE AUTOMATICO MAPPE FRATTALI
|   __ \---.-.-----.  |-----. P R O G R A M M A -  F R E E W A R E
|    __/  _  |  _  |  |  _  | IN TOP 50 FREEWARE SU  
www.zdnet.com
|___|   ___._|_____|__|_____| UTILIZZABILE CON Winfract & Fractint
|Nome:   Paolo Guagliumi    |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|E-Mail: 
pguag...@dada.it
 | 
http://members.tripod.com/softwork/map
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

questa TASK BAR e non DIETRO. Oppure esiste qualche altro modo?
C'è qualcosa che mi sfugge: quando tu fai Form1.WindowState = vbMaximized,
il form viene ridimensionato in modo da coprire l'area di schermo libera,
non occupata cioè da taskbar e/o le barre di office.
Di questo è Windows stesso ad occuparsene, e prova ne è che quando trascini
la barra su un lato il tuo form viene nuovamente ridimensionato, e lo stesso
se fai nascondere la taskbar.
Non vedo il problema, a meno che tu con "sopra" non intenda in primo piano,
ma non mi sembra fosse questo il tuo intento.
Ciao.

TASK BAR orizzontale di Windows95/98 NT
[SNIP]
Se usi il controllo SysInfo fornito con VB puoi accedere alle proprieta'
WorkAreaTop
WorkAreaLeft
WorkAreaHeight
WorkAreaWidth
che ritornano appunto coordinate e dimensioni dell'area del desktop disponibile
(tenendo in considerazione quindi la Taskbar e, credo, anche altre barre degli
strumenti tipo quella di Office); e' sufficiente posizionarlo sul tuo Form e
puoi accedere subito a queste proprieta' senza nessun altro codice.
Se vuoi evitare di usare l'OCX puoi usare la funzione SystemParametersInfo:
Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA"
(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As
Long) As Long
Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Public Const SPI_GETWORKAREA = 48
e quindi:
Private Sub Form_Load()
Dim DesktopRect As RECT
Call SystemParametersInfo(SPI_GETWORKAREA, 0&, DesktopRect, 0&)
With DesktopRect
    Me.Move Screen.TwipsPerPixelX * .Left, _
    Screen.TwipsPerPixelY * .Top, _
    Screen.TwipsPerPixelX * (.Right - .Left), _
    Screen.TwipsPerPixelY * (.Bottom - .Top)
End With
End Sub
Ciao.
--
Luca Dormio
l...@sig-la.com
ldo...@tin.it
P.S.
un piccolo quesito; per far funzionare la funzione ho dovuto cambiare, nel
prototipo, '...ByVal lpvParam As Any...' con '...lpvParam As Any...': qualcuno
sa se e' un errore del file Win32Api.txt o c'e' un modo per farla funzionare
anche col Byval? (a me dava 'Type mismatch')

il form viene ridimensionato in modo da coprire l'area di schermo
libera...
Se uso Form1.WindowState = vbMaximized succede che il FORM1 viene
massimizzato, ma va "dietro" alla TASK-BAR, ovvero alla barra grigia,
quella con il pulsante START/AVVIO e l'orologio.
Quindi in pratica il FORM1, rimane coperto dalla TASK-BAR per circa 1 cm,
l'altezza generica della TASK-BAR. Invece io vorrei si vedesse tutto,
quindi che il FORM1 non iniziasse al top dello schermo e finisse al
"bottom" dello schermo, ma vorrei che il Form1, come accade per Internet
Explorer, Word, iniziasse al top dello schermo e finisse dove inizia la
TASK-BAR grigia, in modo da non avere 1 cm di FORM1 "coperto" dalla
TASK-BAR grigia.
Grazie mille Zanna comunque ho letto un suggerimento di Luca Dormio e
cercherò di metterlo in pratica, ciao!


Paolo Guagliumi ha scritto nel messaggio +ADw-370cd4cd.0+
AEA-news.dada.it
+AD4-...
+AD4-Zanna ha scritto nel messaggio +ADw-7eg6qf+ACQ-5qq+ACQ-4+
AEA-nslave1.tin.it
+AD4-...
+AD4-
+AD4APg-C'+AOg- qualcosa che mi sfugge: quando tu fai Form1.WindowState +AD0-
+AD4-vbMaximized,
+AD4APg-il form viene ridimensionato in modo da coprire l'area di schermo
+AD4-libera...
+AD4-
+AD4-Se uso Form1.WindowState +AD0- vbMaximized succede che il FORM1 viene
+AD4-massimizzato, ma va +ACI-dietro+ACI- alla TASK-BAR, ovvero alla barra grigia,
+AD4-quella con il pulsante START/AVVIO e l'orologio.
+AD4-
Ripeto, il form dovrebbe essere ridimensionato correttamente da windows,
infatti questo fatto che con la taskbar alzata la form maximizzata si riduce
+AOg- un vero tormentone, e mi ha sempre costretto a nasconderla sui pc dove ho
installato le mia applicazioni.


