#567 | ディスプレイの解像度を取得するには? | VBA、API | |
Accessでフォームをデザインする際、気を付けなければならないひとつがディスプレイの解像度です。低い解像度を前提にデザインした場合はまだよいですが、高い解像度を前提にした場合、その実行環境の解像度が低いとすべてが表示されず、スクロールしなければならないといったことにもなりかねません。 そのような場合に備えて、事前にユーザーのディスプレイの解像度を取得し、もし前提条件よりも低ければ警告を表示するといった対応も一つの手段としてあると思います。そのようなときに使える、ディスプレイの解像度を取得するプログラムサンプルです。 まず下記のAPIの宣言をDeclarationsセクションに記述します。 'デスクトップサイズ取得関係のAPIの宣言 Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetWindowRect Lib "user32" _ (ByVal hWnd As Long, lpRect As RECT) As Long Private Type RECT x1 As Long y1 As Long x2 As Long y2 As Long End Type そして、然るべきところで下記のようなプログラムを実行します。 Dim r As RECT Dim hWnd As Long Dim lngWidth As Long Dim lngHeight As Long hWnd = GetDesktopWindow() GetWindowRect hWnd, r lngWidth = r.x2 - r.x1 lngHeight = r.y2 - r.y1 MsgBox "ディスプレイの解像度は " & lngWidth & "×" & lngHeight If lngWidth < 1024 Or lngHeight < 768 Then MsgBox "この解像度ではフォーム全体が表示されません!" & _ vbCrLf & _ "1024×768以上でお使いください。", _ vbOKOnly + vbInformation End If |
|||
|
Copyright © T'sWare All rights reserved |