Rubrik: Grafik und Font · DirectX | VB-Versionen: VB4, VB5, VB6 | 10.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: Abuse | Bewertung: | Views: 13.378 |
ohne Homepage | System: 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