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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0302
OBSRV TESTスクロールバーの色を変える方法か色を濃くする方法を教えてください。5解決


OBSRV TEST

リンク

2024/3/2(Sat) 03:26:05|NO.101354

お世話になります。
当方、BIOHAZARD OUTBREAKの改造ツールを開発していてそれをコッソリと公開しているものです。

スクロールバーを追加して欲しいと要望がありまして、四苦八苦しながら下記サイト様よりなんとか追加したのですが・・・
https://menyukko.ifdef.jp/cauldron/hmscroll.html

スクロールバーの色合いが薄く、視力が悪い上に老眼が進んだ私にはよく見えないのです。
こんな感じです。
https://cdn-ak.f.st-hatena.com/images/fotolife/i/igusanerima/20240302/20240302031230_original.jpg

スクロールバーの色または濃さを変える方法はありますでしょうか?

syscolor命令で変えることができると書かれているのですが、変わりません。
次のようにすれば良いようなのですが…

color 255,0,0
syscolor 0

お知恵を拝借したくどうかお願いいたします。



この記事に返信する


沢渡

リンク

2024/3/2(Sat) 13:48:21|NO.101355

Windows7あたりまではWM_CTLCOLORSCROLLBARを捕まえることで
スクロールバーの背景色を変更することができたようですが、
今の環境(Windows10以降)ではできなくなってしまったようです。

妥協案ですが、スクロールバーをマウスホイールに対応させるというのは
どうでしょうか?
これならスクロールバーの位置をよく把握していなくてもスクロールができると思います。
以下、略して仮さんのモジュールを使っていて、かつ、
同サイトのサンプルプログラムに適用させた場合の例です。

まず、screen命令でウィンドウを作った後に、
(サンプルプログラムで言えば「screen 1,〜」の直後に)
以下を挿入します。

roll_total=0 //スクロールの合計量 oncmd gosub *wheel,0x020A //WM_MOUSEWHEEL = 0x020A
そのうえで、末尾に以下のサブルーチンを追加します。

*wheel roll_total+=wparam>>16 : w_key=wparam&0xFFFF //ホイールを上回転させた場合はroll_totalの値は増え、下回転させた場合は減る。 //一般的なマウスの場合は120ずつ増減する。 //w_keyには押されているキーの内容が入る。値については以下を参照。 //https://learn.microsoft.com/ja-jp/windows/win32/inputdev/wm-mousewheel repeat r_vec=0 if roll_total>=120 : r_vec=1 : roll_total-=120 if roll_total<=-120 : r_vec=-1 : roll_total+=120 if r_vec=0 : break //ここには本処理を行う前にしておくべき処理を書く。 //たとえば、マウスの位置を調べて、範囲外だったらそのままreturnするとか。 gsel 1 //件のサンプルプログラムの場合はこれを実行しておく必要がある //WM_VSCROLL、もしくはWM_HSCROLLを送ることで、 //モジュール内の「スクロールバーを動かした時の処理」が行われるように仕向ける。 //w_rollが正の値なら第3パラメータには0(SB_LINEUP)が、負の値なら1(SB_LINEDOWN)が入る。 //YBarIDの部分は、ご自身のプログラムのスクロールバーのIDにしてください。 sendmsg hwnd,0x0115,r_vec<0,objinfo(YBarID,2) //縦スクロールバーの場合は0x0115=WM_VSCROLL。横スクロールバーの場合は代わりに0x0114(WM_HSCROLL)を指定する。 //後処理が必要なら gsel 0 loop return

>syscolor命令で変えることができると書かれているのですが、変わりません。
>次のようにすれば良いようなのですが…
>color 255,0,0
>syscolor 0
syscolorは描画命令に用いる色を変更する命令であって(color命令と同種のもの)、
オブジェクトの色を変える命令ではありません。
たとえばこんな感じです。

//ウィンドウ全体を「スクロールバーの軸の色」に設定されている色で染める syscolor 0 : boxf



沢渡

リンク

2024/3/2(Sat) 17:29:36|NO.101359

プログラムで対処する必要はなく、質問者さん個人がスクロールバーを見やすい状態にすれば良いのなら、
ハイコントラストの設定をONにするという方法もありますが。
https://support.microsoft.com/ja-jp/windows/windows-%E3%81%A7%E8%89%B2%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%B9%E3%83%88%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B-fedc744c-90ac-69df-aed5-c8a90125e696#WindowsVersion=Windows_10



OBSRV TEST

リンク

2024/3/3(Sun) 06:34:16|NO.101362

沢渡様

どうもありがとうございいます。
サンプルプログラムのおかけでマウスホイールができるようになりました。
また、スクロールした際に小さな音のカーソル移動音を再生させることにしまして移動していることが明示的にわかりやすくしました。
とても感謝いたします。


またハイコントラストのモードがあるとは知りませんでした。
ただ、これはこれで迷うというか、変わり過ぎてしまってビックリです^^ 慣れが必要ですねw



沢渡

リンク

2024/3/3(Sun) 11:55:26|NO.101363

すみません、追記です。
NO.101355のコメントにある「範囲外だったらそのままreturnするとか。」のreturnは
breakに置き換えてください。
(改変する前のコメントをそのまま残してしまったので)



OBSRV TEST

リンク

2024/3/5(Tue) 09:12:28|NO.101373

沢渡様

おかげ様でこんな感じのものができました。
ありがとうございました。

https://www.youtube.com/watch?v=fTMYlLq_sBs



記事削除

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

NO.101354への返信

マスコット

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

名前

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

削除用パスワード

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

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

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