Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

GetDisplaySettings - Retrieve information about available display modes

Total Hit ( 3463)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


Click here to copy the following block
Const DM_BITSPERPEL As Long = &H40000
Const DM_PELSWIDTH As Long = &H80000
Const DM_PELSHEIGHT As Long = &H100000

Const CCDEVICENAME As Long = 32
Const CCFORMNAME As Long = 32

Private Type DEVMODE
  dmDeviceName As String * CCDEVICENAME
  dmSpecVersion As Integer
  dmDriverVersion As Integer
  dmSize As Integer
  dmDriverExtra As Integer
  dmFields As Long
  dmOrientation As Integer
  dmPaperSize As Integer
  dmPaperLength As Integer
  dmPaperWidth As Integer
  dmScale As Integer
  dmCopies As Integer
  dmDefaultSource As Integer
  dmPrintQuality As Integer
  dmColor As Integer
  dmDuplex As Integer
  dmYResolution As Integer
  dmTTOption As Integer
  dmCollate As Integer
  dmFormName As String * CCFORMNAME
  dmUnusedPadding As Integer
  dmBitsPerPel As Long
  dmPelsWidth As Long
  dmPelsHeight As Long
  dmDisplayFlags As Long
  dmDisplayFrequency As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32" Alias _
  "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _
  ByVal modeIndex As Long, lpDevMode As Any) As Boolean

' Fill two arrays with information about all available display modes
'
' displayInfo() is a bi-dimentional matrix where each row is a display mode
'   displayInfo(n, 0) is the horizontal resolution
'   displayInfo(n, 1) is the vertical resolution
'   displayInfo(n, 2) is the number of colors
'   displayInfo(n, 0) is refresh rate (in MHz) or zero if not available
' displayDescr() is an array of string that contains the same information
'   but in a textual format, ready to be displayed in a menu or listbox

Sub GetDisplaySettings(displayInfo() As Long, displayDescr() As String)
  Dim lpDevMode As DEVMODE
  Dim index As Long
  Dim displayCount As Long
  Dim colorDescr As String
  
  ' set the DEVMODE flags and structure size
  lpDevMode.dmSize = Len(lpDevMode)
  lpDevMode.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
  
  ' count how many display settings are there
  Do While EnumDisplaySettings(0, displayCount, lpDevMode) > 0
    displayCount = displayCount + 1
  Loop
  
  ' now displayCount holds the number of display settings
  ' and we can DIMension the result arrays
  ReDim displayInfo(0 To displayCount - 1, 0 To 3) As Long
  ReDim displayDescr(0 To displayCount - 1) As String
  
  For index = 0 To displayCount - 1
    ' retrieve info on the Nth display mode
    EnumDisplaySettings 0, index, lpDevMode
    ' fill the displayInfo structure
    displayInfo(index, 0) = lpDevMode.dmPelsWidth
    displayInfo(index, 1) = lpDevMode.dmPelsHeight
    displayInfo(index, 2) = 2 ^ IIf(lpDevMode.dmBitsPerPel > 24, 24, _
      lpDevMode.dmBitsPerPel)
    If lpDevMode.dmDisplayFrequency > 1 Then
      displayInfo(index, 0) = lpDevMode.dmDisplayFrequency
    End If
    ' prepare a description for this display mode
    Select Case displayInfo(index, 2)
      Case 16
        colorDescr = "16 colors"
      Case 256
        colorDescr = "256 colors"
      Case Is <= 65536
        colorDescr = "High color"
      Case Else
        colorDescr = "True color"
    End Select
    displayDescr(index) = lpDevMode.dmPelsWidth & " x " & _
      lpDevMode.dmPelsHeight & ", " & colorDescr
    If lpDevMode.dmDisplayFrequency > 1 Then
      displayDescr(index) = displayDescr(index) & ", " & _
        lpDevMode.dmDisplayFrequency & " MHz"
    End If
  Next

End Sub


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.