HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0901
そら塗りつぶしで固まる・・・2解決


そら

リンク

2013/9/1(Sun) 21:39:45|NO.56805

floodfill命令を使って、色々とテストをしてみたのですが、
ループ間にこの命令を使い続けると、何故か画面が固まり、困っています。
下のサンプルではcntが10000を超えると、何故か固まります。

//http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200509/05090003.txt #module #deffunc floodfill int startX, int startY #uselib "gdi32.dll" #cfunc CreateSolidBrush "CreateSolidBrush" int #func SelectObject "SelectObject" int,int #func ExtFloodFill "ExtFloodFill" int,int,int,int,int #func DeleteObject "DeleteObject" int #define ctype RGB(%1,%2,%3) ((%1)|(%2<<8)|(%3<<16)) nc = ginfo_r,ginfo_g,ginfo_b pget startX,startY : tc = RGB(ginfo_r,ginfo_g,ginfo_b) hBrush = CreateSolidBrush( RGB(nc.0,nc.1,nc.2 ) ) SelectObject hdc,hBrush : oldbrs = stat ExtFloodFill hdc, startX, startY, tc, 1 SelectObject hdc,oldbrs : DeleteObject hBrsuh color nc.0,nc.1,nc.2 :return #global circle 100,100,300,300,0 repeat title ""+cnt redraw 0 color 255,255,255:boxf 0,0,20,20 if cnt\2=0{ color 250,250:floodfill 150,150 color:pos 0,0:mes 0 } else{ color 255,255:floodfill 150,150 color:pos 0,0:mes 1 } redraw 1 await 10 loop



この記事に返信する


inovia

リンク

2013/9/1(Sun) 21:57:27|NO.56807

DeleteObjectが失敗してますね。
見てみると変数名が hBrushではなく、hBrsuh になっているので、ここが原因ですね。


SelectObject hdc,oldbrs : DeleteObject hBrsuh


SelectObject hdc,oldbrs : DeleteObject hBrush



そら

リンク

2013/9/1(Sun) 22:41:02|NO.56808

変数名のミスだったんですね!
本当にありがとうございます!



ONION software Copyright 1997-2023(c) All rights reserved.