DrawLineで教えてください。

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: DrawLineで教えてください。

by 初心者爺 » 2007年7月08日(日) 18:14

レスをありがとうございました。
Lineto で挑戦してみたいと思います。

by 初心者爺 » 2007年7月08日(日) 18:13

レスをありがとうございました。
Lineto で挑戦してみたいと思います。

by ゲスト » 2007年7月07日(土) 20:27

これは酷い被りw
リロードすればよかった。失礼しました。

by ゲスト » 2007年7月07日(土) 20:25

DrawLineなる関数は見たことが無い(昔のABの隠し関数?)ので、パラメータから予想して自作してみました
2番目の引数がなんだか分からなかったのでペンの幅にしてあります
最後の3つの引数はそれぞれR成分、G成分、B成分です

コード: 全て選択


Function DrawLine(hDC As HDC,width As Long,sx As Long,sy As Long,ex As Long,ey As Long,r As Byte,g As Byte,b As Byte) As Long
	Dim hPen As HPEN
	hPen = CreatePen(PS_SOLID,width,RGB(r,g,b))
	
	If hPen Then
		hPen = SelectObject(hDC,hPen)
		
		If MoveToEx(hDC,sx,sy,ByVal NULL) Then
			If LineTo(hDC,ex,ey) Then DrawLine=TRUE
		End If
		
		hPen = SelectObject(hDC,hPen)
		DeleteObject(hPen)
	End If
End Function

by konisi » 2007年7月07日(土) 20:23

DrawLineは(AB2.61,AB2.62,AB3.13,AB4.13,AB4.23で試しましたが)宣言されていないので、Include\basic\prompt.sbpを参考にLineToとMoveToExを使うか、或いは(急造ですが)下の関数を使ってみてください。

コード: 全て選択

Sub DrawLine(hDC As HDC,sx As Long,sy As Long,ex As Long,ey As Long,ColorCode As Long,IsBasicColor As Long)
	'引数"IsBasicColor"が非0の時、ColorCodeはGetBasicColorを参照する。それ以外のときはRGB値として処理する。
	'元のDrawLine関数のパラメータが不明だったので、必要なパラメータを再配置した。

	Dim hPen As HPEN,hOldPen As VoidPtr

	If IsBasicColor then ColorCode=GetBasicColor(ColorCode)

	hPen=CreatePen(PS_SOLID,1,ColorCode)
	hOldPen=SelectObject(hDC,hPen)

	MoveToEx(hDC,sx,sy,ByVal NULL)
	LineTo(hDC,ex,ey)
	SetPixel(hDC,ex,ey,ColorCode)

	SelectObject(hDC,hOldPen)
	DeleteObject(hPen)
End Sub

DrawLineで教えてください。

by 初心者爺 » 2007年7月07日(土) 14:44

DrawLine(hDC, 2,sx ,sy , , ex, ey,0,0,128)。
以前のバージョンではこんな感じで動作していました。
久々のABでして、更に最新バージョンで動作させたら「文法が違います」との事。
DrawLineの使い方・パラメータを教えてください。

ページトップ