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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0222
トマトスープobjimage命令とbutton命令を併用した場合の不具合4解決


トマトスープ

リンク

2021/2/22(Mon) 22:35:35|NO.92323

button命令のみの時と比べて、objimage併用時でのボタン内の文字の
位置がズレる現象を見つけました。(主に上方に1ドット程度)
色々と調べてみましたが、フォントサイズによって現象が出たり出な
かったりするようです。
一応回避方法として、buffer画面に文字も一緒に書き込めば対処できると
思いますが、それだと全ボタン分を用意しなければならなくなり、
背景を使いまわせなくなります。
出来ればobjimage併用時でも同じ位置に文字が表示されるようにして
頂ければと思います。
多分不具合だと思うのですが、間違っていたら申し訳ないです。

詳しくはサンプルソースを御覧下さい。

os:win10
hsp:3.51


screen 0,200,300,0,300,300 cls 3 objmode 2,0 buffer 1,200,300 color 255,255,0 boxf color 180,180,0 boxf 1,1,45,15 color 255,255,0 boxf 2,2,44,14 gsel 0,2 color 255,255,255 font "MS ゴシック",14,0 pos 110,10 mes "サイズ:結果" pos 10,240 mes "左:buttonのみ" pos 10,260 mes "右:objimage併用" objsize 47,17 font "MS ゴシック",10,0 objimage -1 pos 10,40 button gosub "テスト",*test pos 59,40 objimage 1 button gosub "テスト",*test pos 110,42 mes "10:ズレなし" font "MS ゴシック",11,0 objimage -1 pos 10,70 button gosub "テスト",*test pos 59,70 objimage 1 button gosub "テスト",*test pos 110,72 mes "11:ズレなし" font "MS ゴシック",12,0 objimage -1 pos 10,100 button gosub "テスト",*test pos 59,100 objimage 1 button gosub "テスト",*test pos 110,102 mes "12:ズレあり" font "MS ゴシック",13,0 objimage -1 pos 10,130 button gosub "テスト",*test pos 59,130 objimage 1 button gosub "テスト",*test pos 110,132 mes "13:ズレなし" font "MS ゴシック",14,0 objimage -1 pos 10,160 button gosub "テスト",*test pos 59,160 objimage 1 button gosub "テスト",*test pos 110,162 mes "14:ズレあり" font "MS ゴシック",15,0 objimage -1 pos 10,190 button gosub "テスト",*test pos 59,190 objimage 1 button gosub "テスト",*test pos 110,192 mes "15:ズレあり" stop *test return



この記事に返信する


ウンチョコレートカカオ

リンク

2021/2/22(Mon) 22:45:28|NO.92324

確かに、ずれていますね



TOMATO

リンク

2021/2/22(Mon) 23:57:42|NO.92325

ん〜、不具合かと言われると微妙な感じ。
標準のButtonコントロールはWindows側が文字列の描画を行っているのに対して、
objimageの場合はボタンのオーナードローを行って、
本来Windows側で行う処理を代わりにHSP側でボタンの文字列を描画しています。

描画の仕組みがそもそも違っているので、差異が出ても仕方がないかなぁという感じです。

DrawText()を実行する前に、InflateRect()などで3pxほど文字列の描画矩形を内側にすれば、
同じようになる気がしますが。
http://dev.onionsoft.net/trac/openhsp/browser/trunk/hsp3/win32gui/hspwnd_obj.cpp#L807



トマトスープ

リンク

2021/2/24(Wed) 22:37:31|NO.92342

>描画の仕組みがそもそも違っているので、差異が出ても仕方がないかなぁという感じです。

なるほど、そういうことですか。
ただ問題のないレベルの差異は出てもいいんですが、文字によってはボタンのかなり
上部に表示されて見えるので、全体的に結構違和感が出ます。
ですので、出来れば中央に綺麗に表示して欲しいと思います。
最終的には作者のおにたまさんの判断にお任せすることになりますが。

解決していないのでチェックはせずに、もう少しこのままにしておきます。



トマトスープ

リンク

2021/3/4(Thu) 22:48:46|NO.92407

ある程度の期間が経ちましたので、終了とします。
情報ありがとうございました。



記事削除

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

NO.92323への返信

マスコット

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

名前

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

削除用パスワード

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

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

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