ボタンの上にマウスを乗せるとハイライトされるようにしたいです。
少し調べてみたのですが、このサイトの過去の質問では
SetBlendModeとDrawBoxを組み合わせてDrawBoxの範囲だけ色々と合成できる
ということなのですが(違ったらすいません)
Dxlib::SetBlendModeという関数が見つかりませんでした。。
どのようにしたらいいでしょうか?
ボタンはクラスで作ってあり、widthとheightを指定して描画関数を呼び出すと下記のような9種類の画像を組み合わせて表示されます。
①②③
④⑤⑥
⑦⑧⑨
※width=5,height=5の場合
※①②②②③
※④⑤⑤⑤⑥
※④⑤⑤⑤⑥
※④⑤⑤⑤⑥
※⑦⑧⑧⑧⑨
SetDrawBlendModeで画像それぞれにハイライトさせるのもいいのですが、その上に文字を表示させるので、
できたらボタンの座標と終端座標までの四角形にマスクのようなものをかけたいです。
ボタンをハイライトしたい
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ボタンをハイライトしたい
単に明るくするだけなら、SetDrawBrightで良いんじゃないでしょうか?
http://homepage2.nifty.com/natupaji/DxL ... html#R3N18
他の方法だと色々とややこしくなります。
http://homepage2.nifty.com/natupaji/DxL ... html#R3N18
他の方法だと色々とややこしくなります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
AXL
Re: ボタンをハイライトしたい
返答ありがとうございます。
つまり描画処理前にSetDrawBrightでハイライトを設定して描画が終わったところでデフォルト値に戻すということでしょうか?
あと、100%以上にならないと書かれていますが・・・
ここの投稿フォームの、プレビューボタンや送信ボタンのようにしたいのですが、これを一枚の画像の明るさ調整だけでやりたいという感じです。
つまり描画処理前にSetDrawBrightでハイライトを設定して描画が終わったところでデフォルト値に戻すということでしょうか?
あと、100%以上にならないと書かれていますが・・・
ここの投稿フォームの、プレビューボタンや送信ボタンのようにしたいのですが、これを一枚の画像の明るさ調整だけでやりたいという感じです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ボタンをハイライトしたい
>つまり描画処理前にSetDrawBrightでハイライトを設定して描画が終わったところでデフォルト値に戻すということでしょうか?
>あと、100%以上にならないと書かれていますが・・・
あっと失礼しました。
SetDrawBlendModeと併用しないと好きな色でハイライト化はできませんね。
一度ボタンを描画した後、SetDrawBrightでハイライトしたい色を強調して、SetDrawBlendModeのDX_BLENDMODE_ADDで同じボタンを上に重ねて加算描画して下さい。この時は、字もハイライト専用に描画してください。
この場合ボックスとか便利な方法はありませんので、自分でうまく関数化してください。
>あと、100%以上にならないと書かれていますが・・・
あっと失礼しました。
SetDrawBlendModeと併用しないと好きな色でハイライト化はできませんね。
一度ボタンを描画した後、SetDrawBrightでハイライトしたい色を強調して、SetDrawBlendModeのDX_BLENDMODE_ADDで同じボタンを上に重ねて加算描画して下さい。この時は、字もハイライト専用に描画してください。
この場合ボックスとか便利な方法はありませんので、自分でうまく関数化してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
AXL
Re: ボタンをハイライトしたい
なるほど、ありがとうございます。softya(ソフト屋) さんが書きました: 一度ボタンを描画した後、SetDrawBrightでハイライトしたい色を強調して、SetDrawBlendModeのDX_BLENDMODE_ADDで同じボタンを上に重ねて加算描画して下さい。この時は、字もハイライト専用に描画してください。
この場合ボックスとか便利な方法はありませんので、自分でうまく関数化してください。
うまく動きましたので解決とさせて頂きます。
ソースコードは大層なものではないですが、
感謝の意も込めて書き込んでおきます。
ボタンがonMouse時のスコープです。