Last Updated 2003/11/11
Programming Tips Visual Basic  索 引 
ディスプレイ解像度とTwip
2003/11/11

ディスプレイの解像度は以下で分かるかもしれない.

DIM f_size as String

 If Screen.TwipsPerPixelX = 12 Then
     f_size = "大きいフォント"
 Else
     f_size = "小さいフォント"
 End If
 Text1.Text = "ディスプレイ解像度= " & _
              Format(Screen.Width / Screen.TwipsPerPixelX) & _
              "×" & Format(Screen.Height / Screen.TwipsPerPixelY) & _
              "で" & f_size & "です。"


しかし Windows95 系かつディスプレイドライバによってフォントサイズは可変である.
(フォントサイズを 150% とかに指定可能)
その場合は上記の方法では判定は不可能になる.

1 論理インチは 1440twip であるから,1 インチあたりのピクセル数で割った値が TwipsPerPixelX と想像できる.

 1440 / GetDeviceCaps(Me.hdc, LOGPIXELSX)  => TwipsPerPixelX
 1440 / GetDeviceCaps(Me.hdc, LOGPIXELSY)  => TwipsPerPixelY

「大きいフォント」は 12,「小さいフォント」は 15 であるが,それ以外は GetDeviceCpas で取得した値を標準フォント 96dpi で割った値がパーセンテージではないかと想像できる.

  GetDeviceCaps(Me.hdc, LOGPIXELSY) * 100 / 96


参照
前後のTips
ディスプレイ解像度とTwip

DSS ProgrammingTipsCGI Ver2.02