Newsgroup: it.comp.lang.visual-basic
Titolo: Line ... e Circle ... lentissime. Come si puo' ovviare?

l

E che è magico questo tread? Le reply scompaiono...

[dato che il reply è magicamente invisibile elimino il post
originale...vediamo se funziona...]
Api per disegnare:
Per le funzioni api cerca nell'Api Loader. Ce ne sono tante!
linea fino ad un punto:
Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal
x As Long, ByVal y As Long) As Long
ellisse o cerchio:
Declare Function Ellipse Lib "gdi32" Alias "Ellipse" (ByVal hdc As Long,
ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As
Long
curve di bezier:
Declare Function PolyBezierTo Lib "gdi32" Alias "PolyBezierTo" (ByVal hdc As
Long, lppt As POINTAPI, ByVal cCount As Long) As Long
polilinea chiusa:
Declare Function PolyDraw Lib "gdi32" Alias "PolyDraw" (ByVal hdc As Long,
lppt As POINTAPI, lpbTypes As Byte, ByVal cCount As Long) As Long
polilinea:
Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long,
lpPoint As POINTAPI, ByVal nCount As Long) As Long:
poligono chiuso:
Declare Function PolyPolygon Lib "gdi32" Alias "PolyPolygon" (ByVal hdc As
Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As
Long
-Come fare il pan come autocad:
Il metodo più veloce secondo me è lavorare con una picture molto grande
contenuta dentro ad una picture più piccola. Spostando il vertice della
picture grande si sposta la visuale della stessa. In altre parole quando la
picture grande è su 0,0 gli angoli in alto a sinistra delle due picture
coincidono e vedi l'angolo in alto a sinistra del "foglio".
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Stefano Foresi
Sito comune del news group:
http://members.xoom.com/it_lang_vb/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E che è?...
Provo a ripostare, prima è sparito tutto:
Per le linee ci sono le Api
MoveToEx()
LineTo()
che sono nettamente più veloci delle istruzioni vb.
MoveToEx() sposta il puntatore alle coordinate (x;y) sull'hDc dell'oggetto
su cui si vuole disegnare, la struttura POINTAPI ritorna il punto un cui il
cursore si trovava prima di essere spostato.
LineTo() disegna una linea a partire dalla posizione del cursore fino a
quella indicata dalle coord (x;y).
Mi sembra utilizzino il colore .ForeGround.
Per i cerchi c'è Ellipse().
Puoi usare l'Ape Polygon()
La velocità di disegno è sorprendente (almeno per vb).
Polygon() accetta sempre l'hDc su cui disegnare, ma questa volta la
struttura POINTAPI in realtà e un array di coordinate che indicano i vertici
del poligono.
nCount è il numero di vertici da disegnare.
Se non sai come disporre i vertici del poligono su un cerchio in modo da
avere poligoni regolari, o se hai problemi postami in privato, la cosa è un
po' lunga.

E che è magico questo tread? Le reply scompaiono...
  Si chiama morbo di autlucche e colpisce chiunque cerchi di usare
questo fetido newsreader per rispondere a certi messaggi a piu'
sezioni in formato MIME (non so se accada sempre o solo a volte).
  Ciao :-)
  Massimo
  Nell'indirizzo, inserire una "h" tra la "t" e la "u"
  In the address, insert an "h" between the "t" and the "u"