OSの設定で文字を大きくすると、ステータスバーに文字が収まらなくなる

  1. いつもお世話になっております。

    Windowsの設定で、「簡単操作→ディスプレイ→文字を大きくする」から文字を大きくしていくと、ステータスバーに文字を表示しきれずに下部が切れてしまいます。この設定はおそらく新たに実装されたものであり(過去のWindowsではより柔軟な設定が出来ましたが、実装方法が異なるでしょう)、このような不具合はやむを得ないものと思います。心苦しい所ではありますが、ご対応を検討していただけると幸いです。

    Windowsの仕様は以下の通りです。
    エディション Windows 10 Home
    バージョン 21H1
    インストール日 ‎2021/‎09/‎15
    OS ビルド 19043.1237
    エクスペリエンス Windows Feature Experience Pack 120.2212.3530.0

     |  Suketoudara  |  返信
  2. ご報告ありがとうございます。

    いただいた条件で現象を再現することができました。Windows にこんな機能があるのは知りませんでした。

    同じ条件で、[プラグイン バー] や [外部ツール バー] もなんだか描画がおかしくなるようです。

    [文字を大きくする] はメモ帳をはじめ、様々なアプリでもステータスバーの文字が切れ気味だったり、検索ダイアログなどに設定が反映されなかったりするようなので、OS 的に無理のある機能なのかもしれませんね。

    対応できるかどうかわかりませんが、対策を調査してみたいと思います。

     |  Kuro  |  返信
  3. 多分ユーザーからの不満による対応なんでしょうけど、古いアプリのUIが崩れるのを想定できないはずがないと思うのですが…何はともあれ、よろしくお願いします。

     |  Suketoudara  |  返信
  4. Windows 10 はそういった部分では作りが雑なところも多い印象ですよね。

    本件について調査した結果、予想以上に難しい問題でした。

    Windows の仕様上どうしても対応できない部分もありまして、申し訳ございませんが、以下のような対応となってしまいます。

    ・ステータスバーの文字がはみ出る問題
    → ステータスバーの高さを自動で調節することである程度ははみ出にくくできましたが、やはり [文字を大きくする] の設定のよっては文字の下のほうは少し切れてしまいます。

    ・ダークモード時に [プラグイン バー] や [外部ツール バー] のタイトルがはみ出る問題
    → Windows の仕様上、対応できそうにありませんでした。仕様上の制限事項ということでご容赦ください。(技術的には、Rebar Band が自動で描画する lpText のフォントサイズを取得する方法が Windows の API に存在しないため、ダークモードで独自描画するときのフォントサイズを決定できず、描画がズレてしまいます)

    めちゃくちゃ時間かかったけど、成果なしでもう泣きそうです。

     |  Kuro  |  返信
  5. いえ、わざわざ対応していただきありがとうございます。僕は目が良くないので、フォントは大きくしたいところなのですが、Win32アプリの互換性を保ちつつ高DPI環境に対応させるのは技術的に困難でしょう。個人的にはYu Gothic UIのウェイトを上げられれば読みやすいんですけどね。

     |  Suketoudara  |  返信
  6. 早速お試しいただき、ありがとうございます。

    なるべくはみ出ないようにしたつもりですが、環境によってはちょっとはみ出てしまうかもしれません。

    私もド近眼なもので、年を重ねるごとに PC の文字サイズも大きくなっていってます。

    高 DPI やモニターごとに DPI の異なる Per Monitor DPI なども Win32 アプリには機能が提供されないもので、すべて自前での実装となっており苦戦を強いられております。

    > 個人的にはYu Gothic UIのウェイトを上げられれば読みやすいんですけどね。

    システムフォントの Yu Gothic UI、私もなんだかあの細さが苦手なもので、レジストリをいじってすべて Segoe UI に置き換えてますw

     |  Kuro  |  返信
  7. 私もVersion 3.3.1でこの問題に遭遇しました。特定の環境ではこの問題が出ないので何が違うのかと確認したところ、display settingのscaleが100%では問題なく、125%にしている環境で下が表示欠けするのがわかりました。

    私は4K monitorを使っていますが、scale 100%では文字が小さすぎるのです。

     |  Tsukasa Jitoh  |  返信
  8. ご報告ありがとうございます。

    Ver 3.3.1 でいただいた設定で検証してみたのですが、現象を再現できませんでした。

    【環境】
    ・Windows 10 Pro 21H1 (19043.1288、64 ビット)
    ・Mery Ver 3.3.1 (64 ビット)

    参考画像: https://imgur.com/a/NW33odM

    【設定】
    上の画像は、1 枚目が [ディスプレイの設定] でスケールを 125% に設定。2 枚目が [簡単操作] の [文字を大きくする] を 150% に設定。

    【結果】
    3 枚目が [ライトモード] の場合。4 枚目が [ダークモード] の場合で、どちらもステータスバーの描画は正常でした。

    差し支えなければ以下の情報もいただけませんでしょうか?

    1. お使いの Windows のバージョンとビット数
    2. お使いの Mery のバージョンとビット数 (Ver 3.3.1 では対策済みなので、念のため [バージョン情報] からもう一度、バージョンのご確認とビット数もあわせて教えていただけると助かります)
    3. マルチディスプレイかどうか
    4. マルチディスプレイの場合、メインディスプレイのスケール、サブディスプレイのスケール
    5. Mery の [外観モード] の設定 (ライト or ダーク)
    6. Windows のシステムフォントを変更しているかどうか (ステータスバーは Windows のシステムフォントを使うため)

    Windows 10 以降では Per Monitor DPI といってディスプレイごとに異なるスケールを設定できるようになっており、マルチディスプレイ環境下でメインディスプレイのスケールとサブディスプレイのスケールの設定が異なる場合、メインとサブ、両方のスケールの設定がアプリケーションの動作に影響するため、これらの情報が必要となります。

    お手数をお掛けしますが、よろしくお願いいたします。

     |  Kuro  |  返信
  9. 確認ありがとうございます。以下お答えいたします

    > 差し支えなければ以下の情報もいただけませんでしょうか?
    >
    > 1. お使いの Windows のバージョンとビット数

    Windwows 10 Pro 21H1 64bit / Windows 11 Pro 10.0.22000 64bit どちらの場合でも

    > 2. お使いの Mery のバージョンとビット数 (Ver 3.3.1 では対策済みなので、念のため [バージョン情報] からもう一度、バージョンのご確認とビット数もあわせて教えていただけると助かります)

    Mery (x64) 3.3.1 portable version

    > 3. マルチディスプレイかどうか

    single display

    > 4. マルチディスプレイの場合、メインディスプレイのスケール、サブディスプレイのスケール

    125% / 150% どちらの場合でも

    > 5. Mery の [外観モード] の設定 (ライト or ダーク)

    ライトの場合はは欠けなく収まっていますが、ダークでわずかに欠けます

    > 6. Windows のシステムフォントを変更しているかどうか (ステータスバーは Windows のシステムフォントを使うため)

    変更していません

    尚、現状でも欠けは僅かで判読可能なため実質的には問題ありません

    それではよろしくお願いいたします。

     |  Tsukasa Jitoh  |  返信
  10. ご返信ありがとうございます。

    環境としては、私の検証環境と同じっぽいですね。スクリーンショットで貼り付けた画像と同じような見え方ということで合ってますでしょうか?

    > ライトの場合はは欠けなく収まっていますが、ダークでわずかに欠けます

    なるほど、「わずかに」ということでしたら、そうですね。

    これは開発段階で妥協したポイントなもので、「環境によってはちょっとはみ出てしまうかもしれません」と書いたのがまさにそれです。

    ダークモードの場合、[スケール] と [簡単操作] の [文字を大きくする] の組み合わせによっては微妙に下の方が切れてしまうことはありますが、これは仕様上の制限事項ということでご容赦くださいませ。

    ダークモードはマイクロソフトのサポート外な機能なため自前で無理やり実装していることもあって、ステータスバーの文字の描画位置は Windows の動作を解析して作りこんでいるのですが、[簡単操作] の [文字を大きくする] の機能は仕様が公開されていないため、描画位置の計算は想像で実装している状態です。

    [スケール] と [文字を大きくする] の組み合わせもひととおり検証したうえで、若干、切れることもあるけど切れないことのほうが多いという感じの妥協ポイントなので、現在のところはご了承いただければ幸いです。

    今後、改善できる方法が見つかれば対応させていただきたいと思いますので、よろしくお願いいたします。

     |  Kuro  |  返信
スポンサーリンク