Newsgroup: it.comp.lang.visual-basic
Titolo: Cerco una API che faccia al caso mio

Cioč che mi permetta di spostare una immagine presente all'interno di
una picBox all'interno della stessa (pictureBOX intendo), dopo aver
selezionato la porzione di immagine da spostare con qualcosa tipo un
rettangolo tratteggiato (come succede in Paint per intenderci.).Btw č
proprio necessaria una API o si puň fare diversamente? Per favore non
siate troppo tecnici, sono alle prime armi. 
Grazie.
Francesco.

 con qualcosa tipo un  rettangolo tratteggiato
Per selezionare il rettangolo (in modo da poterlo anche deselezionare), usa
l'api DrawFocusRect passandogli il device context di PictureBox e la
struttura di tipo Rect del rettangolo da illuminare.
Se non hai capito ciņ che ho scritto, puoi usare il metodo "Line" della
Picturebox (usando il parametro "B" per fargli disegnare un rettangolo), di
cui trovi spiegazione ed esempi nell'help in linea.
Per poterlo scrivere e cancellare, cambia il settaggio di DrawMode della
PictureBox in VbXorPen. Anche di questo trovi spiegazione nell'help.
Per spostare fisicamente l'immagine, devi usare il metodo PaintPicture
(spiegato nell'help) o l'Api BitBlt (Spiegata in AllApi).
In ogni caso forse hai intenzione di cominciare con qualcosa un po' troppo
complicato, se sei effettivamente solo agli inizi. Se vuoi lavorare con la
grafica, comincia a studiarti sull'help i metodi e le proprietą della
PictureBox,  seguendo gli esempi che trovi.
Ciao
*Roby*

(spiegato nell'help) o l'Api BitBlt (Spiegata in AllApi).
Ok darò un occhiata. Cmqe paintpicture già lo conosco.
Grazie mille.
Francesco.

 Hmm l'unico problema è con la struttura, perchè sul resto ci sono.
E' semplice. Dichiari un tipo Rect che secondo specifiche è:
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Poi dichiari una variabile di tipo RECT:
Dim VerticiRettangolo As RECT
A questo punto, per settare i vertici, compili ogni componente della
struttura VerticiRettangolo:
VerticiRettangolo.Left = 10
VerticiRettangolo.Top = 10
VerticiRettangolo.Right = 100
VerticiRettangolo.Bottom = 100
Così definisci un rettangolo che parte dalla posizione 10,10 e che è largo
90 pixel e alto altrettanti (attenzione: le api trattano dimensioni e
coordinate sempre e solo in pixel, i Twips dimenticateli).
Per chiamare l'API, fai così:
Call DrawFocusRect(TuaPicture.Hdc, VerticiRettangolo)
Ciao
*Roby*
P.S.
Per l'altro messaggio in cui ti consigliavo AllAPI, che tui avevi appena
detto di avere già, non farci caso: probabilmente i troppi OT che sto
postando in questo periodo mi stanno rimbambendo. ;-)

postando in questo periodo mi stanno rimbambendo. ;-)
:-)))

 solo le coordinate di destinazione, NON quelle di partenza.
Guarda meglio. ;-)
Sintassi
oggetto.PaintPicture immagine, x1, y1, larghezza1, altezza1, x2, y2,
larghezza2, altezza2, codiceop
x1, y1, larghezza1, e Altezza1 riguardano la destinazione.  x2, y2,
larghezza2, e Altezza2 riguardano la partenza.
L'importante è che partenza e destinazione abbiano la stessa dimensione
(altrimenti ottieni un effetto di "stiramento" dell'immagine).
Nel caso di PaintPicture, al contrario che con le Api, le coordinate devono
essere espresse con lo scalemode della picture in oggetto (ovvero, di
default in Twips). Controlla bene nell'help anche cosa significano i vari
"codici di operazione" che permettono di ottenere effetti diversi in fase di
output.
Ciao
*Roby*

larghezza2, altezza2, codiceop
Avevi ragione :-) non ero riuscito a interpretare bene gli argomenti.
Adesso credo di averlo implementato correttamente, perň c'č un
problema che non credo dipenda dalla funzione specifica, visto che ce
l'ho con tutti gli altri strumenti. E cioč: il disegno funziona in
maniera "coprente".Quindi nello specifico se seleziono qualcosa per
spostarlo il rettangolo di selezione me lo copre e invece di quello
che volevo sposto il rettangolo. Credo dipenda da DrawMode della
PictureBox o qualcosa del genere ma non so come fare. Ho fatto un po'
di tentativi ma niente. Cosa mi suggerisci?
Grazie ancora.
Francesco.
P.s.
Allego il codice cosě puoi controllare meglio.

larghezza2, altezza2, codiceop


 Allego il codice cosě puoi controllare meglio.
Non si possono inserire allegati sul NG, ed io cancello dall'e-mail senza
leggerli tutti i messaggi che vengono da persone che non conosco
personalmente, quindi č inutile che me li mandi direttamente come hai fatto.
Prova a spiegarti meglio, postando solo un estratto minimo del tuo codice.
Qui si risponde per hobby e quando si ha tempo; se vuoi una consulenza
privata invece, ti devi prima mettere in coda ai miei clienti e poi pagare.
;-)
Ciao
*Roby*

 ;-)
e' gia' un grosso passo avanti.
gli informatici che conosco io dicono:
devi prima pagare e poi metterti in coda
:)
j.queue