高速に線を描く

<戻る

API宣言コードを載せてあります


-/-/-/-/-宣言-/-/-/-/-/

APIのMoveToExLineToを使います。

宣言は、

 

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

<戻る


http://www.vector.co.jp/authors/VA015521/