●概要●
宣言文 Declare Function GetSystemMetrics Lib "user32"
(ByVal nIndex As Long) As Long
設定項目 内容
nIndex 取得する値の種類を示す定数を指定[省略不可]
GetSystemMetrics関数は、引数に指定した定数によって、様々なウィンドウアイテムのサイズや数などを返します。画面解像度を取得する場合には、定数「SM_CXSCREEN(=0)」を指定して画面の幅を、定数「SM_CYSCREEN(=1)」を指定して画面の高さを取得します。
次のコードは、画面解像度をメッセージダイアログで表示するサンプルです。
●サンプル1●
Private Declare Function GetSystemMetrics _
Lib "user32" _
(ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN As Long = 0
Private Const SM_CYSCREEN As Long = 1
'画面解像度を取得する
Sub Sample1()
Dim myX As Long, myY As Long
'画面の幅を取得
myX = GetSystemMetrics(SM_CXSCREEN)
'画面の高さを取得
myY = GetSystemMetrics(SM_CYSCREEN)
'結果の表示
MsgBox myX & " × " & myY
End Sub
また、デスクトップのサイズを取得することによっても、同様の結果が得られます。
次のコードは「Sample1」プロシージャとまったく同じ結果を返すサンプルです。
●サンプル2●
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetDesktopWindow _
Lib "user32" () As Long
Private Declare Function GetWindowRect _
Lib "user32" _
(ByVal hwnd As Long _
, lpRect As RECT) As Long
'画面解像度を取得する
Sub Sample2()
Dim myHwnd As Long
Dim myRect As RECT
'デスクトップのウィンドウハンドルの取得
myHwnd = GetDesktopWindow()
'位置、サイズ情報の取得
GetWindowRect myHwnd, myRect
'幅と高さを表示
With myRect
MsgBox .Right & " × " & .Bottom
End With
End Sub