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

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



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