連続した線分を一度に複数個描画 <TOP>
GetDC デバイスコンテキストのハンドルを取得
ReleaseDC デバイスコンテキストを解放
例では、四角形と三角形を一度に描画しています。
'================================================================ '= 連続した線分を一度に複数個描画
'= (PolyPolyline.bas) '================================================================ #include "Windows.bi" Type POINTAPI x As Long y As Long End Type ' 連続した線分を一度に複数個描画 Declare Function Api_PolyPolyline& Lib "gdi32" Alias "PolyPolyline" (ByVal hDC&, lppt As POINTAPI, lpdwPolypts&, ByVal cCount&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var hDC As Long Var pts(8) As POINTAPI Var numpts(1) As Long Var Ret As Long 'デバイスコンテキスト取得 hDC = Api_GetDC(GethWnd) '△のポイント pts(0).x = 50 : pts(0).y = 10 pts(1).x = 200: pts(1).y = 100 pts(2).x = 10 : pts(2).y = 100 pts(3).x = 50 : pts(3).y = 10 numpts(0) = 4 '□のポイント pts(4).x = 100: pts(4).y = 10 pts(5).x = 200: pts(5).y = 10 pts(6).x = 230: pts(6).y = 90 pts(7).x = 50: pts(7).y = 60 pts(8).x = 100: pts(8).y = 10 numpts(1) = 5 '△と□の線分を一度に描画 Ret = Api_PolyPolyline(hDC, pts(0), numpts(0), 2) 'デバイスコンテキスト解放 Ret = Api_ReleaseDC(GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End