vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · DirectX   |   VB-Versionen: VB4, VB5, VB610.09.02
Modis einer Grafikkarte via DirectX ermitteln

Dieses Beispiel zeigt, wie sich alle verfügbaren Modis einer Grafikkarte mit Hilfe von DirectX ermitteln lassen.

Autor:   AbuseBewertung:  Views:  13.378 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Das nachfolgende Beispiel zeigt, wie sich alle verfügbaren Modis einer Grafikkarte mit Hilfe von DirectX ermitteln lassen.

Setzen Sie hierzu zunächst einen Verweis auf DirectX 7 for Visual Basic Type Library. Platzieren Sie anschließend folgende Controls auf die Form:

  • Combo1 (für die Anzeige der Grafik-Modis)
  • Combo2 (für die Auswahl des Treibers)

Und hier der Code:

Option Explicit
Dim m_dx As New DirectX7
Private Sub Form_Load()
  ' Init Display Detection
  getDisplayCards
  Combo2.ListIndex = 0
  Combo1.ListIndex = 0
End Sub
' alle Anzeigentreiber ermitteln
Sub getDisplayCards()
  Dim ddEnum As DirectDrawEnum
  Dim i
 
  Set ddEnum = m_dx.GetDDEnum()
  For i = 1 To ddEnum.GetCount()
    With Combo2
      .AddItem (ddEnum.GetDescription(i))
      .ItemData(.NewIndex) = i
    End With
  Next i
End Sub
 
' alle Grafikkarten-Modis ermitteln und auflisten
Sub getdisplaymodes(sGuid As String)
  Dim DisplayModesEnum As DirectDrawEnumModes
  Dim ddsd2 As DDSURFACEDESC2
  Dim DD As DirectDraw7
  Dim dold As Long
  Dim i As Long
 
  On Error GoTo DIRECTX_Error
  Set DD = m_dx.DirectDrawCreate(sGuid)
  DD.SetCooperativeLevel Me.hWnd, DDSCL_NORMAL
  Set DisplayModesEnum = DD.GetDisplayModesEnum( _
    DDEDM_DEFAULT, ddsd2)
 
  For i = 1 To DisplayModesEnum.GetCount()
    DisplayModesEnum.GetItem i, ddsd2
    Combo1.AddItem Trim(Str(ddsd2.lWidth)) + "x" + _
      Trim(Str(ddsd2.lHeight)) + ":" + _
      Trim(Str(ddsd2.ddpfPixelFormat.lRGBBitCount)) + "Bit"
  Next
  Exit Sub
 
DIRECTX_Error:
  MsgBox "ERROR INIT DIRECT X!!!"
End Sub
' alle Grafikmodis des gewählten Anzeigentreibers
' ermitteln und auflisten
Private Sub Combo2_Click()
  Dim ddEnum As DirectDrawEnum
  Dim StrGuid As String
  Dim i As Long
 
  Set ddEnum = m_dx.GetDDEnum()
 
  i = Combo2.ItemData(Combo2.ListIndex)
  StrGuid = ddEnum.GetGuid(i)
  getdisplaymodes StrGuid
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.