[GUIDA] GDI+, by Gianlu-thebest

« Older   Newer »
  Share  
Gianlu-thebest
CAT_IMG Posted on 16/5/2010, 14:33     +1   -1




Questa guida è stata fatta interamente da me, chi la spaccia per la sua morirà investito da un taxi!

Cosa sono le GDI+
GDI significa Graphics Device Interface
CITAZIONE
Le Graphics Device Interface, anche chiamate Graphics Display Interface (GDI), sono un set di API grafiche utilizzato da Windows per la renderizzazione di grafica 2D. Vengono utilizzate ad esempio dal Window Manager Luna (window manager) per la gestione dei menù, delle icone ecc... Inoltre, vengono wrappate dal Microsoft .Net Framework per la gestione delle classi Windows Forms, ovvero di tutti i controlli grafici per gestire la GUI di una applicazione. Vengono utilizzate anche da molti altri framework come Active Template Library (ATL) e Microsoft Foundation Classes (MFC).

Grazie a wikipedia.

___- Includiamo i file necessari -___
Per far funzionare innanzi tutto includete il file GDIPlus.au3:
CODICE
#include <GDIPlus.au3>


___- Avviamo GDI+ e Creiamo una penna! -___
Dopo aver incluso i file necessari bisogna avviare le GDI altrimenti non funzionerà niente:
CODICE
_GDIPlus_StartUp()

_GDIPlus_StartUp() è il comando che avvi i servizi delle GDI, non ha nessun parametro.

Per creare una penna, si devono seguire i passaggi precedenti e, si usa il Comando:
CODICE
_GDIPlus_PenCreate(0xFF000000,1,2)

0xFF000000 serve per indicare il colore della penna (di default è nero[0xFF000000]);
1 è la larghezza della penna in pixel (di default è 1);
2 è l'unità della penna (di default è 2[Non ho ancora capito bene come funziona...])

Tutti questi parametri sono opzionali.

___- Creiamo un grafico sulla GUI! -___
Senza un grafico, Non potremmo usare al massimo le GDI+. Soprattutto su una GUI.
Per crearne uno basta fare:
CODICE
_GDIPlus_GraphicsCreateFromHWND($GUI)

Il comando $GUI è la variabile della gui a cui applicare un grafico..
Il grafico non ha bisogno di altri comandi!

___- Un minuto di pausa! -___
Ora il vostro codice dovrebbe essere all'incirca così:

CODICE
#include <GUIConstants.au3>
#include <GDIPlus.au3>; Includiamo i file delle gdi+

_GDIPlus_Startup() ; Avviamo le gdi!

;Creiamo una GUI:
$GUI = GUICreate("Prova",400,400)

$penna = _GDIPlus_PenCreate(0xFF000000,2) ; Creiamo un penna nera con larchezza 2 pixel... ; Non è obbligatorio crearla!
$grafico = _GDIPlus_GraphicsCreateFromHWND($GUI) ; Creiamo il grafico, è molto importante dargli una variabile!

;Rendiamo visibile la GUI
GUISetState(@SW_SHOW,$GUI)

While 1
       If GUIGetMsg() = -3 Then ExitLoop ; appena si preme sulla X esce dal while
WEnd

;Appena usciro dal while cancella la gui:
GUIDelete($GUI)

;Elimina il grafico
_GDIPlus_GraphicsDispose($grafico)

;Elimina la penna
_GDIPlus_PenDispose($penna)

;Esce
Exit


___- Linee e cerchi -___
Per fare una linea si usa il comando:
CODICE
_GDIPlus_GraphicsDrawLine($grafico,10,10,80,80)

$Grafico è la variabile del grafico;
10 è la posizione x da dove parte - il secondo 10 è la posizione y da dove parte;
80 è la posizione x da dove arriva - il secondo 80 è la posizione y da dove arriva;

Per un cerchio invece:
CODICE
_GDIPlus_GraphicsDrawEllipse($grafico,10,90,50,50)

I comandi sono gli stessi ma 50 e 50 sono larghezza e altezza del cerchio!

Per usare la penna che avete creato, dopo i comandi che vi ho spiegato c'è nè un'altro: $hPen basta inserire la variabile della penna e userà la vostra!

Avete capito?

A me gli esempi di AutoIt non funzionavano..e quindi ho provato!

__- Fine Prima Parte! -__
Bene è finita la prima parte di questa guida!
Spero vi sia piaciuta, e per qualunque cosa chiedete!
 
Top
EnigmaCJ™
CAT_IMG Posted on 16/5/2010, 15:09     +1   -1




Bravo!
Comunque dovevi scrivere che sarebbe investito da un Tram, come dice Anubizz.
 
Top
-Anubi-
CAT_IMG Posted on 16/5/2010, 15:25     +1   -1




CITAZIONE (EnigmaCJ™ @ 16/5/2010, 16:09)
Bravo!
Comunque dovevi scrivere che sarebbe investito da un Tram, come dice Anubi.

u.u correggi

p.s. Ottima guida ;)
 
Top
Gianlu-thebest
CAT_IMG Posted on 16/5/2010, 16:32     +1   -1




Sto scrivendo la seconda parte, la aggiungerò al post principale.
 
Top
MHack
CAT_IMG Posted on 19/5/2010, 13:44     +1   -1




Bella guida gianlu ;)
 
Top
ottobit
CAT_IMG Posted on 30/5/2010, 19:30     +1   -1




Ottima guida Gianlu-thebest. Esponi con chiarezza e in maniera semplificata. Grazie
 
Top
Gianlu-thebest
CAT_IMG Posted on 22/4/2011, 21:59     +1   -1




Alcuni mi hanno detto che non funziona.. a voi va? Se non funziona ditemelo che io l'aggiusto... eh!
 
Top
*Sym98*
CAT_IMG Posted on 24/4/2011, 10:10     +1   -1




Ma la seconda parte quando la fai? :)
 
Top
Gianlu-thebest
CAT_IMG Posted on 11/11/2011, 20:40     +1   -1




Quando si ghiaccerà l'inferno. :asd:
 
Top
*Sym98*
CAT_IMG Posted on 11/11/2011, 20:54     +1   -1




L'hai letto ora? :lol:
 
Top
»Master
CAT_IMG Posted on 11/11/2011, 23:46     +1   -1




no, credo che volessi un motivo per uppare la sua guida xD
 
Top
*Sym98*
CAT_IMG Posted on 12/11/2011, 08:06     +1   -1




Non ho capito. D:
 
Top
»Master
CAT_IMG Posted on 12/11/2011, 13:11     +1   -1




nah niente, lascia stare va xD
 
Top
*Sym98*
CAT_IMG Posted on 12/11/2011, 19:15     +1   -1




No, ora lo voglio sapere. xD
 
Top
Gianlu-thebest
CAT_IMG Posted on 14/11/2011, 16:25     +1   -1




Sym: Sì.
Master: No l'ho letto solo ora xDD

Comunque era già importante, quindi ù.ù
 
Top
21 replies since 16/5/2010, 14:33   1012 views
  Share