● 画面の表示色数を取得する ●

Windows XP で実行したら 4294967296 色と出た。こんなに色があるのかな? Currency型で受け取らないとオーバーフローするし。ということで Windows 95用。Windows 95 では Long 型で大丈夫なのではないかと。

Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Const BITSPIXEL = 12
Private Const PLANES = 14

Private Sub Command1_Click()

    Dim GetDispColor As Currency

    'PLANESの値を2倍してBITSPIXELの値乗する
    GetDispColor = GetDeviceCaps(Me.hdc, PLANES) * 2 ^ GetDeviceCaps(Me.hdc, BITSPIXEL)

    Call MsgBox("画面の表示色数は" & GetDispColor & "色です。")

End Sub

戻る