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 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 |