Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Creare l'oggetto 'matita': La funzione CreatePen(Tutorial completo)

La funzione che andremo ad analizzare non fa altro che creare l'oggetto Pen, ossia una vera e propria matita utilizzabile per differenti impieghi grafici.
Il tratto della matita che verrà creata tramite quest'API sarà sempre di forma quadrata. Potremo però impostare le dimensioni di tale quadrato impostandone la lunghezza del lato. Come qualsiasi oggetto creato da codice, alla chiusura dell'applicazione sarà però necessario distruggere l'oggetto tramite la funzione DeleteObject.
Il valore di ritorno della funzione è 0 in caso di errore (è in ogni caso possibile intercettare il codice dell'errore tramite la funzione GetLastError, cosa che per il momento lasceremo in sospeso).
Contrariamente a ciò che ci si potrebbe aspettare, in caso di successo la funzione CreatePen non restituisce il numero intero 1 ma il numero che identifica l'oggetto Pen.
Ricordiamo che il numero identificativo di un oggetto o hWnd (handle (of the) Window) non è altro che il numero di riferimento a tale oggetto. O meglio a tale finestra. Questo perchè è da tenere presente che per Windows ogni oggetto è considerato uno speciale tipo di finestra.
Per un'analisi approfondire, consultare l'articolo LE API: RIFERIMENTI AD OGGETTI E A PERIFERICHE, PUNTATORI E FLAGS dove vengono illustrati alcuni concetti fondamentali per la gestione degli oggetti.

Prima di andare avanti però, sarà opportuno esaminare la funzione sotto esame:

Declare Function CreatePen Lib "gdi32.dll" (ByVal fnPenStyle As _
Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

Ciò significa che la CreatePen è contenuta nel file gdi32.dll in versione unica: se nel file fossero state presenti sia la versione Ansi che la Unicode, sarebbe stato necessario aggiungere Alias "CreatePenA". Per maggiori informazioni sulle due versioni delle API e sulle loro dichiarazioni, consultare l'articolo LE API: DICHIARAZIONE.
I parametri accettati (o meglio, richiesti) dalla funzione corrispondono a tre interi a 32 bit (As Long). Allo stesso modo il valore di ritorno (che come già abbiamo avuto occasione di notare può essere 0 o il numero intero che identifica l'oggetto Pen di nuova creazione) è un'intero a 32 bit (As Long).

Adesso possiamo finalmente entrare nel vivo della funzione CreatePen con l'analisi approfondita dei parametri e delle caratteristiche che possiamo in questo modo associare alla nuova matita:

fnPenStyle Indica lo stile da applicare nell'uso della matita, ossia quello che risulterà quando andremo ad utilizzare la matita stessa. fnPenStyle può infatti corrispondere ad uno dei seguenti flags:
PS_SOLID: stile continuo
PS_DASH: stile tratteggiato lungo. Il parametro nWidth dovrà essere però minore o uguale ad uno
PS_DOT: stile tratteggiato breve. Il parametro nWidth dovrà essere però minore o uguale ad uno
PS_DASHDOT: una combinazione degli stili DASH e DOT. Il parametro nWidth dovrà essere però minore o uguale ad uno
PS_DASHDOTDOT: stile ottenuto alternando una riga a due punti. Il parametro nWidth dovrà essere però minore o uguale ad uno
PS_NULL: il tratto della matita risulta invisibile
PS_INSIDEFRAME: stile continuo. Quando il tratto della penna viene disegnato all'interno di un oggetto contenitore, (ad esempio una PictureBox), le dimensioni del tratto vengono adattate alle dimensioni del contenitore.
nWidth Indica la larghezza del tratto. Se nWidth corrisponde a 0, il tratto ha le dimensioni di un pixel.
crColor Rappresenta il codice del colore da applicare al tratto della matita. Il colore viene definito attraverso il codice del colore RGB (Red Green Blue)


Prima di giungere a termine dell'articolo, c'è ancora da vedere le costanti dei Flags appena visti. Abbiamo qui di seguito l'elenco completo. Ricordiamo che non è necessario indicare tutte le costanti all'interno di un progetto, ma solo quelle relative ai Flags che s'intende utilizzare:

Const PS_SOLID = 0
Const PS_DASH = 1
Const PS_DOT = 2
Const PS_DASHDOT = 3
Const PS_DASHDOTDOT = 4
Const PS_NULL = 5
Const PS_INSIDEFRAME = 6

Ricordiamo che la creazione dell'oggetto non implica l'immediata possibilità di farne uso. Vedremo negli articoli successivi come utilizzare una matita creata con la funzione CreatePen

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