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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0730
kenchkboxやbuttonの色を変えたい5未解決


ken

リンク

2008/7/30(Wed) 16:52:51|NO.17758

下半分のようにwindowの背景色を暗くするとボタンやチェックボックスが浮いてしまいます。
ボタンやチェックボックスも背景色と同じ色にしたいのです。上半部全体を暗くするでもいいです。


syscolor 15 boxf button "TEST1",*dummy chkbox"chkbox1",k chkbox"chkbox2",k syscolor 16 boxf 0,240,640,480 pos ,240 button "TEST1",*dummy chkbox"chkbox1",k chkbox"chkbox2",k *dummy



この記事に返信する


Gugurecus

リンク

2008/7/30(Wed) 18:10:48|NO.17759

ボタンに関して。
NO.5814
NO.5831
NO.9002

チェックボックス。
NO.15341



ken

リンク

2008/8/1(Fri) 12:43:30|NO.17803

Gugurecusさんありがとうございます。
ボタンの色を変えるのはイメージボタンを使えばいいのは分かったのですが、チェックボックス
はNO.15341の例を使うと文字の部分が白になってしまいます。ここは変えられないのでしょうか?


#uselib "user32.dll" #cfunc GetSysColorBrush "GetSysColorBrush" int #define WM_CTLCOLORSTATIC 0x138 syscolor 16 boxf oncmd gosub *createcheckbox, WM_CTLCOLORSTATIC ; スタティックコントロールが作成されるときに割り込み chkbox "checkbox", a ; チェックボックス作成 stop *createcheckbox hBrush = GetSysColorBrush(3);5=白 ウィンドウ背景色のブラシを取得 return hBrush ; ブラシのハンドルを返す



flory

リンク

2008/8/1(Fri) 20:10:07|NO.17809

ども。NO.15341で回答した者です。
kenさんも気づいていらっしゃるようですが、GetSysColorBrush()関数のパラメータを変えると色を変えられます。パラメータに指定する数値は、HSPのsyscolor命令で指定する数値と同じものです。たとえば、NO.17803に挙げられているサンプルでは、syscolor命令に16を指定しているので、GetSysColorBrush(16)とすればよいです。



Gugurecus

リンク

2008/8/1(Fri) 23:17:13|NO.17815

floryさんが直接解説してくれたので大丈夫だと思うが、
GetSysColorBrush()関数の引数については以下で分かると思う。
VB用のサイトだがHSPでAPIを使う際にかなり有用なので
ぜひ知っておいてほしい。
http://www.winapi-database.com/
http://www.winapi-database.com/Graphics/Brush/GetSysColorBrush.html
http://www.winapi-database.com/Graphics/Color/GetSysColor.html



ken

リンク

2008/8/4(Mon) 12:15:40|NO.17877

ありがとうございます。

GetSysColorBrush(16)でもうまくいきません。
check2のようにしたいのですが・・・。


#uselib "user32.dll" #cfunc GetSysColorBrush "GetSysColorBrush" int #define WM_CTLCOLORSTATIC 0x138 oncmd gosub *createcheckbox, WM_CTLCOLORSTATIC ; スタティックコントロールが作成されるときに割り込み syscolor 16 boxf chkbox "check1", a ; チェックボックス作成 ;↓擬似チェックボックス面倒くさい objsize 12,12 font "",13 chkbox "", a color pos 18,23 mes "check2" stop *createcheckbox hBrush = GetSysColorBrush(16);5=白 ウィンドウ背景色のブラシを取得 return hBrush ; ブラシのハンドルを返す



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