2012年4月6日金曜日

先日のerror ver2012/4/6

入力ボックス/メッセージボックの表示色変更
http://lhsp.s206.xrea.com/hsp_object2.html#2

mesbox用命令
http://space.geocities.jp/digital_clock_2006/HSP/module/MB_draw.htm
を組み合わせると、僕の環境ではawaitとwaitが上手く動かないw
Kpanさんとこ掲示板ちっちゃいので報告用に

// エディトコントロール内文字色&背景色変更サンプル (by Kpan)
// 改変y.tack

// mesbox描画用module
// 以下MBとはmesboxのこと
// 変数定義。mesbox命令の直後に呼び出して下さい。(statの値が変わるので)
goto *_4MB_END
*_4MB_init
target=""
_ID=stat
return
// 一行描画(すぐ描画)
#deffunc MB_add_one str _4add
target=_4add+target
objprm _ID,target
return
// mesboxクリア
*MB_clear
target=""
objprm _ID,target
return
*_4MB_END

#include "gdi32.as"

#define ctype RGB(%1,%2,%3) (%1 | %2 << 8 | %3 << 16)

dim hInput, 2
color $33,$ff,$33
boxf 0,0,640,480
; エディットコントロールが描画されるときに送られてくる
; ウィンドウメッセージ (WM_CTLCOLOREDIT)
oncmd gosub *ctlcoloredit, $133

; 生成したカラーデータを破棄するための処理に必要
onexit *exit

a = ""
font "",17
objmode 2
pos 220,20
mesbox a, 400,440,1
gosub *_4MB_init
ID4mesbox=stat
hInput.0 = objinfo(stat, 2)

; 背景カラー用のブラシを生成しハンドルを取得。
CreateSolidBrush RGB($00, $88, $00)
hBrush.0 = stat
pos 0,0
objsize 200,20
button "click",*lnext
stop
*lnext
await 3000
MB_add_one "y.tack presents\n\n"
await 3000
MB_add_one "WEAPON POINT\n\n"
await 3000
MB_add_one "START!\n\n"
await 5000
button "NEW GAME",*tmp_l
button "CONTINUE",*tmp_l
// MB_clear
stop
*tmp_l
stop
*ctlcoloredit
; lparamにオブジェクトのウィンドウハンドルが返る
if hInput.0 = lparam {
SetTextColor wparam, RGB($FF, $FF, $FF)

; テキスト背景色 (hBrush.0と同色を指定)
SetBkColor wparam, RGB($00, $88, $00)

; ボックス背景色
return hBrush.0
}


return

*exit
; 作成した背景カラー用のブラシを破棄
DeleteObject hBrush.0

end

使用moduleを変更しました

0 件のコメント: