设置屏幕分辨率、颜色位数、刷新率

本文介绍了一段使用Visual Basic编写的代码,通过调用Windows API来改变显示器的分辨率设置。代码中定义了必要的API函数,并展示了如何通过读取用户输入的新分辨率参数来调整显示模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读:
  
  '////////////////////////////////
  '//
  '//griefforyou收集整理
  '//
  '////////////////////////////////
  Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
  Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
  Private Const CCDEVICENAME As Long = 32
  Private Const CCFORMNAME As Long = 32
  Private Const DM_BITSPERPEL As Long = &H40000
  Private Const DM_PELSWIDTH As Long = &H80000
  Private Const DM_PELSHEIGHT As Long = &H100000
  Private Const DM_DISPLAYFLAGS As Long = &H200000
  Private Const DM_DISPLAYFREQUENCY = &H400000
  Private Const CDS_FORCE As Long = &H80000000
  Private Const BITSPIXEL As Long = 12
  Private Const HORZRES As Long = 8
  Private Const VERTRES As Long = 10
  Private Const VREFRESH = 116
  Private Type DEVMODE
  dmDeviceName As String * CCDEVICENAME
  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 * CCFORMNAME
  dmUnusedPadding As Integer
  dmBitsPerPel As Integer
  dmPelsWidth As Long
  dmPelsHeight As Long
  dmDisplayFlags As Long
  dmDisplayFrequency As Long
  End Type
  Private Sub cmdChangeDesktopMode_Click()
  Dim DM As DEVMODE
  
  With DM
  .dmPelsWidth = CInt(txtNewWidth.Text)
  .dmPelsHeight = CInt(txtNewHeight.Text)
  .dmBitsPerPel = CInt(txtNewColor.Text)
  .dmDisplayFrequency = CInt(txtNewFreq.Text)
  .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL Or DM_DISPLAYFREQUENCY
  .dmSize = LenB(DM)
  End With
  
  If ChangeDisplaySettings(DM, CDS_FORCE) <>0 Then
  
  MsgBox "错误!不支持此模式!"
  
  End If
  End Sub
  Private Sub Form_Load()
  txtOldWidth.Text = GetDeviceCaps(Me.hdc, HORZRES)
  txtOldHeight.Text = GetDeviceCaps(Me.hdc, VERTRES)
  txtOldColor.Text = GetDeviceCaps(Me.hdc, BITSPIXEL)
  txtOldFreq.Text = GetDeviceCaps(Me.hdc, VREFRESH)
  End Sub

本文转自
http://blog.youkuaiyun.com/griefforyou/archive/2005/05/23/379187.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值