即効テクニック |
●概要● 宣言文 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