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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0630
さか2mesboxのカラー変更3解決


さか2

リンク

2024/6/30(Sun) 08:51:12|NO.101854

以下のようにクリアと再配置しないでカラーを変更したいのですが可能でしょうか。
API使用してもいいです。

objcolor 255,0,0: color 0,0,255 objmode objmode_usecolor+objmode_usefont memo="aaaaaaaaaa": pos 0,0: mesbox memo,ginfo_winx,ginfo_winy wait 100 ;クリアと再配置 clrobj 0 objcolor 0,0,255: color 255,0,0 objmode objmode_usecolor+objmode_usefont memo="aaaaaaaaaa": pos 0,0: mesbox memo,ginfo_winx,ginfo_winy



この記事に返信する


沢渡

リンク

2024/7/1(Mon) 12:45:40|NO.101860

このような形でやってみました。
この方法ですと「メッセージボックスの内容が更新されるたびに割り込みが発生し、
 waitやawaitの残り時間がスキップされてしまう」という弊害が起きるので、
それへの対処を一応行っております。

//参考:http://hsp.tv/play/pforum.php?mode=pastwch&num=88098 #include "user32.as" #include "gdi32.as" #include "kernel32.as" //Sleepを使うために必要 #include "winmm.as" //TimeGetTimeを使うために必要 #module #const sleep_time 16 //await2では実際はこれの倍数分の時間だけ待つ。 //不都合があるようなら弄ってみてください。 #deffunc await2 int msec //途中で割り込みが発生しても指定された時間だけきっちり待つawait TimeGetTime : start=stat repeat TimeGetTime : if stat-start>=msec : break await 0 Sleep sleep_time loop return #global #define ctype RGB(%1,%2,%3) ( (%1) | ((%2)<<8) | ((%3)<<16) ) //SetTextColorやSetBkColor、CreateSolidBrushで //指定する色はこの形式を用いる。 //変更後の文字色と背景色を設定 col_text=RGB(0,0,255) //文字の色 col_bk=RGB(255,0,0) //文字の背景色 //ブラシの作成 CreateSolidBrush RGB(255,0,0) //オブジェクトの背景色(文字の背景色とは別の色にすることも可能) h_brush=stat //ブラシのハンドル objcolor 255,0,0: color 0,0,255 objmode objmode_usecolor+objmode_usefont memo="aaaaaaaaaa": pos 0,0: mesbox memo,ginfo_winx,ginfo_winy h_mbox=objinfo(stat,2) //メッセージボックスのハンドル onexit *exit oncmd gosub *ccedit,0x0133 //WM_CTLCOLOREDIT=0x0133 repeat oncmd cnt\2 //oncmdによる割り込みのON/OFFを切り替える InvalidateRect h_mbox,0,1 //メッセージボックスの内容を更新 await2 1000 //通常のwaitやawaitだと途中で割り込みが発生すると残り時間がスキップされるので、これを使う。 loop *ccedit if lparam=h_mbox { SetTextColor wparam,col_text SetBkColor wparam,col_bk return h_brush } return *exit DeleteObject h_brush end



沢渡

リンク

2024/7/1(Mon) 12:48:55|NO.101861

書き忘れていましたが、ブラシは不要になったらDeleteObjectで削除する必要があります。
上のコードではonexitで終了時に削除するようにしています。



さか2

リンク

2024/7/3(Wed) 21:03:11|NO.101868

沢渡さん
ありがとうございます。
時間での反映方法も参考になります。
DeleteObject承知しました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.101854への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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