如何动态改变屏幕设置?   我们经常看到许多 Win95 的应用程序(尤其是游戏)在运行它的时候改变屏幕的设置,运行完后恢复,在 VB 中,我们可以用以下方法实现:   定义 Private Declare Function lstrcpy Lib "kernel32" Alias _   "lstrcpyA" (lpString1 As Any, lpString2 As Any) As Long Const CCHDEVICENAME = 32 Const CCHFORMNAME = 32 Private Type DEVMODE   dmDeviceName As String * CCHDEVICENAME   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 * CCHFORMNAME   dmUnusedPadding As Integer   dmBitsPerPel As Integer   dmPelsWidth As Long   dmPelsHeight As Long   dmDisplayFlags As Long   dmDisplayFrequency As Long End Type Private Declare Function ChangeDisplaySettings Lib "User32" _   Alias "ChangeDisplaySettingsA" (ByVal lpDevMode As Long, _   ByVal dwflags As Long) As Long   '函数 Public Function SetDisplayMode(Width As Integer, _   Height As Integer, Color As Integer) As Long   Const DM_PELSWIDTH = &H80000   Const DM_PELSHEIGHT = &H100000   Const DM_BITSPERPEL = &H40000   Dim NewDevMode As DEVMODE   Dim pDevmode As Long   With NewDevMode    .dmSize = 122    If Color = -1 Then      .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT    Else      .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL    End If    .dmPelsWidth = Width    .dmPelsHeight = Height    If Color <> -1 Then      .dmBitsPerPel = Color    End If   End With   pDevmode = lstrcpy(NewDevMode, NewDevMode)   SetDisplayMode = ChangeDisplaySettings(pDevmode, 0) End Function   例子调用:改变为 640x480x24位: i = SetDisplayMode(640, 480, 24) 如果成功返回 0 。