戻る

ディスプレイのサイズが何インチかを調べる方法(API関数 GetDeviceCaps の使用例)
動作環境 Windows95/98 開発環境 Visual Basic 6.0 (+SP3)
説明 API関数 GetDeviceCaps と"三平方の定理"を利用してディスプレイのサイズを調べます。
用意するもの:標準フォーム(Form1)、コマンドボタン(Command1)
'変数の明示的な宣言を強制します。
Option Explicit

'API関数 GetDeviceCaps の使用を宣言します。
Private Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hdc As Long, _
ByVal nIndex As Long) As Long

'第1引数:デバイスコンテキストのハンドルを指定します。
'第2引数:取得する情報の種類を指定する以下の定数を指定します。

Const HORZSIZE = 4 'スクリーンの幅(mm)
Const VERTSIZE = 6 'スクリーンの高さ(mm)

Private Sub Command1_Click()

'変数を宣言する
Dim DispW As Long 'ディスプレイの幅の情報
Dim DispH As Long 'ディスプレイの高さの情報
Dim DispC As Long 'ディスプレイの対角線の長さの情報

DispW = GetDeviceCaps(Form1.hdc, HORZSIZE)
DispH = GetDeviceCaps(Form1.hdc, VERTSIZE)

'三平方の定理を利用してディスプレイの対角線の長さ
'(DispWを底辺、DispHを高さとした三角形の斜辺の長さ)を求めます。

'***************************************************
'三平方の定理:DispCの2乗=DispWの2乗+DispHの2乗
'      :DispC=(DispWの2乗+DispHの2乗)の平方根
'***************************************************

DispC = (DispW ^ 2 + DispH ^ 2) ^ (1 / 2)

Print "画面の幅 :" & DispW & " ミリメートル"
Print "画面の高さ:" & DispH & " ミリメートル"
Print "画面の対角線の長さ:" & DispC & " ミリメートル"

'ディスプレイのサイズ:ディスプレイの対角線の長さの単位"をミリメートル"から"インチ"に変換
'1インチ = 25.4ミリメートル
Print "画面のサイズ:" & Format((DispC / 25.4), "##.#") & "インチ"

End Sub

Private Sub Form_Load()

Command1.Caption = "情報の取得"

End Sub