Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
La funzione MoveWindow (Articolo completo)

Attraverso l'API MoveWindow è possibile modificare la posizione e le dimensioni di una qualsiasi finestra attiva durante l'esecuzione dell'applicazione.
Questo vale naturalmente nel momento in cui la finestra in questione è visibile e non ridotta ad icona.
E' inoltre possibile applicare la MoveWindow sia ad una finestra di primo livello che ad una finestra child (ossia una finestra a cui sia stato assegnato il parametro WS_CHILD e che quindi viene visualizzata entro le dimensioni di una finestra principale).
Nel primo caso le dimensioni e la posizione saranno determinate semplicemente a partire dall'angolo in alto a sinistra dello schermo.
Per una finestra child, le dimensioni sono relative all'angolo in alto a sinistra della finestra principale.
La dichiarazione della MoveWindow è la seguente:

Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

da cui si deduce la presenza della funzione nel file user32.dll e che i parametri da assegnarle siano ben sei, tutti valori numerici, proprio come il valore ritornato dalla funzione stessa.
E proprio riguardo il valore di ritorno possiamo aggiungere che se la funzione fallisce esso assume il valore 0, se la funzione ha invece successo il valore ritornato sarà diverso da 0.
I parametri da assegnare alla MoveWindow sono i seguenti:

hWnd E' il riferimento alla finestra della quale si vuole modificare dimensioni o posizione. Per recuperare tale valore numerico è possibile utilizzare la funzione FINDWINDOW.
x Corrisponde alla coordinata x della nuova posizione della finestra, a partire dal bordo sinistro dello schermo o dal bordo sinistro della finestra che contiene la finestra indicata.
y Corrisponde alla coordinata y della nuova posizione della finestra, a partire dal bordo superiore dello schermo o dal bordo superiore della finestra che contiene la finestra indicata.
nWidth Corrisponde alla nuova dimensione in larghezza della finestra indicata.
nHeight Corrisponde alla nuova dimensione in altezza della finestra indicata.
bRepaint Specifica se la finestra deve essere ridisegnata al suo interno dopo averne modificato dimensioni e/o posizione. Il valore del parametro è di tipo booleano.

Così ad esempio, proseguendo l'esempio fatto per la funzione FINDWINDOW se volessimo modificare le dimensioni e la posizione della finestra Documenti (ammesso che prima sia stata aperta), dovremo prima trovare il riferimento a quella specifica finestra che, come già è stato indicato, si effettua nel seguente modo:

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As _
String, ByVal lpWindowName As String) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y _
As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Sub Form_Load()
Dim Rit As Long
Rit = FindWindow(vbNullString, "Documenti")
End Sub

Nota: è differente aprire la finestra "Documenti" dal desktop di Windows o dal percorso "C:\Documenti". Nel primo caso infatti il titolo della finestra sarà proprio "Documenti" e nel secondo "C:\Documenti".
Questo modifica il titolo della finestra che è proprio quello preso in considerazione dalla funzione FINDWINDOW.
Altra nota: fare caso al fatto che la variabile Rit è stata dichiarata dello stesso tipo (Long) del valore di ritorno della funzione, proprio perchè Rit è il valore di ritorno.
Adesso, se volessimo modificare dimensioni e posizione della finestra "Documenti" (ATTENZIONE: modificare i valori di visualizzazione potrebbe causare dei problemi o comunque settare in maniera anormale le dimensioni delle finestre. Utilizzare la funzione SOLO se si è certi di poter recuperare i valori iniziali):

MoveWindow Rit, 10, 50, 500, 440, True



Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it