Dim objDx As New DirectX7 Dim objDraw As DirectDraw7 Dim objEnumModes As DirectDrawEnumModes
Sub Cleanup() 'Cleanup函数回复屏幕并且清除DirectX对象 Call objDraw.RestoreDisplayMode Call objDraw.SetCooperativeLevel(Me.hWnd, DDSCL_NORMAL) Set objDraw = Nothing Set objDx = Nothing End End Sub
Private Sub Command1_Click() CleanUp End Sub
Private Sub Form_Load() Command1.Caption = "结束" Command2.Caption = "设置显示模式"
On Error GoTo ErrHandler:
Dim ddsd As DDSURFACEDESC2 Dim I As Long, lgCount As Long
Set objDx = New DirectX7 '建立 DirectDraw 对象 Set objDraw = objDx.DirectDrawCreate("")
'将DirectDraw对象支持的显示模式设置到DirectDrawEnumModes对象中 Set objEnumModes = objDraw.GetDisplayModesEnum(DDEDM_DEFAULT, ddsd)
'将数据设置到ListBox中 lgCount = objEnumModes.GetCount() For I = 1 To lgCount objEnumModes.GetItem I, ddsd List1.AddItem CStr(ddsd.lWidth) & "x" & CStr(ddsd.lHeight) & "x" _ & CStr(ddsd.ddpfPixelFormat.lRGBBitCount) Next I
ErrHandler: Select Case Err.Number Case 0 ''没有错误 Case Else Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpContext, _ Err.HelpContext Call Cleanup End Select End Sub Private Sub Form_Unload(Cancel As Integer) Cleanup End Sub 程序的运行结果如下图: