⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 54.txt

📁 VB文章集(含API、窗口、数据库、多媒体、系统、文件、等等)
💻 TXT
字号:
如何动态改变屏幕设置?
 

  我们经常看到许多 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 。
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -