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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0229
まだまだ初心者staticテキストのちらつき3解決


まだまだ初心者

リンク

2008/2/29(Fri) 12:30:37|NO.13828

winobjでstaticを作り、そこに文字を表示しようとしているのですが、それが高速なためか、ちらついて見えてしまいます。
色々と検索はしてみたもののredrawとかが多くてこれに関するものは全く見当たりません・・・
どなたかご教授お願いいたします

以下サンプル

#uselib "gdi32" #cfunc GetStockObject "GetStockObject" int winobj "static", "0", , $50000000, 100, 15 h = objinfo(stat, 2) sendmsg h, $30, GetStockObject (17) repeat 10000 redraw 0 sendmsg h ,$C , , ""+cnt redraw wait 0 loop



この記事に返信する


inovia

リンク

2008/3/1(Sat) 03:34:55|NO.13838

redraw命令は多分オブジェクトには使えないと思います。
試しに以下のようにやると

redraw 0 sendmsg h ,$C , , ""+cnt pos 0,40 mes ""+cnt //redraw wait 1
メッセージは書き換わらず、オブジェクトは書き換わるので・・・

あまり解決策ではないかもしれませんが、wait 1にするとちらつきが抑えられました。



pizza

リンク

2008/3/1(Sat) 04:08:10|NO.13839

オーナードローを試してみてください。


#include "user32.as" #include "gdi32.as" #define SS_OWNERDRAW 0xD #define WM_DRAWITEM 0x002B #define SRCCOPY 0x00CC0020 sdim buf, 256 winobj "static", "0", , $50000000|SS_OWNERDRAW, 100, 15 h = objinfo(stat, 2) oncmd gosub *lb_OnDrawItem, WM_DRAWITEM buffer 1, 100, 15 sysfont 17 gsel 0 repeat sendmsg h ,$C , , ""+cnt await 0 loop *lb_OnDrawItem dupptr dis, lParam, 36 gsel 1 color : boxf : color 255 : pos 0, 1 GetWindowText h, varptr(buf), 256 mes buf // bufferからstaticにコピー BitBlt dis(6), 0, 0, 100, 15, hdc, 0, 0, SRCCOPY gsel 0 return



まだまだ初心者

リンク

2008/3/1(Sat) 20:40:11|NO.13847

ありがとうございました!
こんな方法があるなんて知りませんでした



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