LoginSignup
0
0

More than 5 years have passed since last update.

C++ Builder > TForm > 「テキストやその他の項目の大きさの変更」 > 中(M)や大(L)の場合にウィンドウサイズが変化する

Last updated at Posted at 2017-11-21
動作環境
C++ Builder XE4

症状

コントロールパネル > ディスプレイ > 画像の解像度
において「テキストやその他の項目の大きさの変更」がある。

そこで設定可能なテキストサイズは以下がある。

  • 小 - 100% (既定)(S)
  • 中(M) - 125%
  • 大(L) - 150%

この設定を「小」から変更した場合、フォームの「width」および「height」プロパティの値も拡大されるようだ。

テストコード

Unit1.cpp
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int dpi  = this->PixelsPerInch;
    ShowMessage(IntToStr(dpi));
}
//---------------------------------------------------------------------------

上記のコードのそれぞれの実行結果は以下となる。

  • 小: 96
  • 中: 120
  • 大: 144

フォームのサイズ(width, height)をプログラム上で変更するようにした場合、上記を考慮しないと「中」や「大」の設定時にフォームの一部しか表示されなくなる。

解像度の高い画面に対して文字が小さくなる場合、ユーザが上記の設定を「小」から変更する場合がある。そのような場合にフォームが正常に表示されなくなる。

Windows 10

Windows 10 (Autumn Creators Update適用済み)にて上記のコードを実行してみた。

dual monitorにおいて左側だけを「125%」にした。
結果は「96」だった。
( 設定変更後、サインアウトはしていない。デスクトップアイコンの文字は大きくなった)。

リンク

二つ目のリンク先でいくつかのリンクが紹介されている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0