PolyBezierとか☆の輪郭だけ描くとかリージョンのテスト
2009.04.13 06:47
// 不等号がタグと認識されるのを回避するため全角文字に置き換えてます。
#uselib "gdi32"
#func CreatePen "CreatePen" int,int,int
#func CreateSolidBrush "CreateSolidBrush" int
#func SelectObject "SelectObject" int,int
#func DeleteObject "DeleteObject" int
#func PolyBezier "PolyBezier" sptr,sptr,int
#func Polygon "Polygon" sptr,sptr,int
#func BeginPath "BeginPath" int
#func EndPath "EndPath" int
#func PathToRegion "PathToRegion" int
#func PaintRgn "PaintRgn" sptr,sptr
#func FillRgn "FillRgn" sptr,sptr,sptr
#func FrameRgn "FrameRgn" sptr,sptr,sptr,int,int
#func SetPolyFillMode "SetPolyFillMode" sptr,int
#enum PS_SOLID =0
#enum PS_DASH
#enum PS_DOT
#enum PS_DASHDOT
#enum PS_DASHDOTDOT
#enum PS_NULL
#enum PS_INSIDEFRAME
#enum ALTERNATE =1
#enum WINDING
#uselib "user32"
#func SetWindowRgn "SetWindowRgn" int, int, int
redraw 1
//PenStyles=PS_DOT: PenBorder=1
PenStyles=PS_SOLID: PenBorder=2
font "HG創英角ポップ体",24,1
color 1,1,1: rgb=(ginfo_b<<16)+(ginfo_g<<8)+ginfo_r
CreatePen PenStyles,PenBorder,rgb : hPen=stat
color 128,128,128: rgb=(ginfo_b<<16)+(ginfo_g<<8)+ginfo_r
CreateSolidBrush rgb : hBrush=stat
SelectObject hdc,hPen: SelectObject hdc,hBrush
SetPolyFillMode hdc,WINDING
BeginPath hdc
PointLines=5: PointLen=PointLines: dim BezPoints,PointLen*2
BezPoints=500,100, 550,200, 400,130, 600,130, 450,200
Polygon hdc,varptr(BezPoints),PointLen
PointLines=2: PointLen=PointLines*3+1: dim BezPoints,PointLen*2
BezPoints=100,100, 150,100, 200,200, 200,250, 300,300, 400,100, 150,200
PolyBezier hdc,varptr(BezPoints),PointLen
pos 0,0: color 255,0,0: mes "リージョンテスト"
EndPath hdc: PathToRegion(hdc): Rgn=stat
// SetWindowRgn hwnd,Rgn,1
// FillRgn hdc,Rgn,hBrush
FrameRgn hdc,Rgn,hBrush,PenBorder,PenBorder
DeleteObject Rgn
DeleteObject hPen: DeleteObject hBrush
redraw 1
color 255,0,0
repeat PointLen
pset BezPoints(cnt*2),BezPoints(cnt*2+1): pos BezPoints(cnt*2),BezPoints(cnt*2+1): mes ""+cnt
loop
redraw 1
stop
//[Delphi Win32API/API関数一覧] http://www.geocities.jp/asumaroyuumaro/program/winapi/apitop.html
//[HSP3 あれこれ <ウィンドウ>] http://lhsp.s206.xrea.com/hsp_window.html
//[星を描く]http://rakasaka.fc2web.com/delphi/star.html
#uselib "gdi32"
#func CreatePen "CreatePen" int,int,int
#func CreateSolidBrush "CreateSolidBrush" int
#func SelectObject "SelectObject" int,int
#func DeleteObject "DeleteObject" int
#func PolyBezier "PolyBezier" sptr,sptr,int
#func Polygon "Polygon" sptr,sptr,int
#func BeginPath "BeginPath" int
#func EndPath "EndPath" int
#func PathToRegion "PathToRegion" int
#func PaintRgn "PaintRgn" sptr,sptr
#func FillRgn "FillRgn" sptr,sptr,sptr
#func FrameRgn "FrameRgn" sptr,sptr,sptr,int,int
#func SetPolyFillMode "SetPolyFillMode" sptr,int
#enum PS_SOLID =0
#enum PS_DASH
#enum PS_DOT
#enum PS_DASHDOT
#enum PS_DASHDOTDOT
#enum PS_NULL
#enum PS_INSIDEFRAME
#enum ALTERNATE =1
#enum WINDING
#uselib "user32"
#func SetWindowRgn "SetWindowRgn" int, int, int
redraw 1
//PenStyles=PS_DOT: PenBorder=1
PenStyles=PS_SOLID: PenBorder=2
font "HG創英角ポップ体",24,1
color 1,1,1: rgb=(ginfo_b<<16)+(ginfo_g<<8)+ginfo_r
CreatePen PenStyles,PenBorder,rgb : hPen=stat
color 128,128,128: rgb=(ginfo_b<<16)+(ginfo_g<<8)+ginfo_r
CreateSolidBrush rgb : hBrush=stat
SelectObject hdc,hPen: SelectObject hdc,hBrush
SetPolyFillMode hdc,WINDING
BeginPath hdc
PointLines=5: PointLen=PointLines: dim BezPoints,PointLen*2
BezPoints=500,100, 550,200, 400,130, 600,130, 450,200
Polygon hdc,varptr(BezPoints),PointLen
PointLines=2: PointLen=PointLines*3+1: dim BezPoints,PointLen*2
BezPoints=100,100, 150,100, 200,200, 200,250, 300,300, 400,100, 150,200
PolyBezier hdc,varptr(BezPoints),PointLen
pos 0,0: color 255,0,0: mes "リージョンテスト"
EndPath hdc: PathToRegion(hdc): Rgn=stat
// SetWindowRgn hwnd,Rgn,1
// FillRgn hdc,Rgn,hBrush
FrameRgn hdc,Rgn,hBrush,PenBorder,PenBorder
DeleteObject Rgn
DeleteObject hPen: DeleteObject hBrush
redraw 1
color 255,0,0
repeat PointLen
pset BezPoints(cnt*2),BezPoints(cnt*2+1): pos BezPoints(cnt*2),BezPoints(cnt*2+1): mes ""+cnt
loop
redraw 1
stop
//[Delphi Win32API/API関数一覧] http://www.geocities.jp/asumaroyuumaro/program/winapi/apitop.html
//[HSP3 あれこれ <ウィンドウ>] http://lhsp.s206.xrea.com/hsp_window.html
//[星を描く]http://rakasaka.fc2web.com/delphi/star.html
posted by qd_flare
http://quill.to/qd_flare/66fa864a1c
