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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0325
空気Windowsの標準ボタンの上に画像を描画したいのですが。3解決


空気

リンク

2017/3/25(Sat) 20:02:46|NO.78664

objimageによるカスタムボタンではなく。
buffer上の画像から、Windowsの標準ボタンの上にアイコンを描画する事は可能でしょうか。

Windowsのバージョンや個人設定によってボタンのデザインが追従するようにしたい事と
(Win7はグラデーション立体ボタン、Win10はフラットボタン、クラシックスタイルボタン等)
将来のバージョンのデザイン変更にも対応したい事が理由となっております。

ウィンドウズの標準ボタンの通常時,押し下げ時,マウスオーバー時の画像
buffer上に取得し、buffer上で加工した上での
objimage命令によるWindows標準ボタン風でも構いません。

サンプルスクリプトにて実装方法を教えて頂けると幸いです。よろしくお願い致します。

また、スクリプトを改造し商用利用する事もあるかもしれませんので
ご理解の程、よろしくお願い致します。

参考にボタン上にアイコンを描画しているインストーラーの
画像をアップロードしましたのでご覧ください。
https://www.fastpic.jp/index.php?module=preview&file=2177162889.png



この記事に返信する


InoueSoftware

リンク

2017/3/26(Sun) 10:54:17|NO.78670

BS_ICONのスタイルが設定されているボタンに
BM_SETIMAGEメッセージでアイコンハンドルを送信すると、ボタンにアイコンが表示されます。
※ほかのアイコンを表示させるにはResEditなどでリソースを追加する必要があります。

自分自身のアイコンをボタンに表示させるサンプルです↓
#include "user32.as"
pos 20,20 objsize 80, 80 button "aa", *go hButton = objinfo(stat, 2) //ボタンにアイコンの表示を行うため、BS_ICONスタイルを追加。 SetWindowLong hButton, -16/*GWL_STYLE*/, 0x50000040/*WS_CHILD|WS_VISIBLE|BS_ICON*/ //実行ファイルからアイコンのハンドルを取得。 LoadImage hinstance, 128/*リソースID*/, 1, 32, 32, 0x8000/*LR_SHARED*/ hIcon = stat //ボタンにアイコンハンドルを送信し、アイコンを表示させる。 sendmsg hButton, 0x00F7/*BM_SETIMAGE*/, 1/*ICON_BIG*/, hIcon stop *go stop



空気

リンク

2017/3/30(Thu) 23:03:09|NO.78738

回答、ありがとうございます。
buffer上の画像ではなく、ico製作ソフト等で製作したアイコンを自作した上で、
上記サンプルを参考にボタン上に描画してみようと思います。



空気

リンク

2017/4/3(Mon) 08:35:07|NO.78839

灯台元暗し。。以外にも「Let's HSP!」のボタンの文字色変更に
スクリプトにbuffer上にウィンドウズ標準ボタンを描画し、
その上に任意の文字を描画しているサンプルプログラムがありました。
(ボタンの文字色変更という名前なのでGoogle検索に引っ掛からなかったようですね。)

objimage命令によるWindows標準風ボタンが可能なようです。
自分用のメモを兼ねて、投稿させて頂きます。
http://lhsp.s206.xrea.com/hsp_object1.html#6



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