高速に線を描く
API宣言コードを載せてあります
-/-/-/-/-宣言-/-/-/-/-/
APIのMoveToExとLineToを使います。
宣言は、
Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long
Declare Function LineTo Lib "gdi32" Alias
"LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y
As Long) As Long
の2つをコードに記述してください。
また、Formコードに記述する場合は、PrivateをAPI宣言の先頭にそれぞれ記述してください。
それと、もう一つ。構造体を作成します。
Type POINTAPI
X As Single
Y As Single
End Type
これも、一緒に置いてください。
-/-/-/-/-使い方-/-/-/-/-/
使い方は、Lineメソッドとだいぶ違います。どちらかと言うと、C言語風の使い方。
まず、MoveToExは、線の書き始めるXY位置を決めます。
LineToは、MoveToExの決めたXY位置から線を引きます。
次の例は、Picture1.Line(100, 100)-(200, 200)と結果は同じです。
Dim MovePoint As POINTAPI
MoveToEx Picture1.hDC, 100, 100, MovePoint
LineTo Picture1.hDC, 200, 200
あと、最後に線を描いた後にRefreshメソッドを使うのを忘れないでください。
これを描かないと線が表示されません。
Picture1.Refresh