Public Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As LongPublic 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'设置窗口尺寸为1024*768 Public Function SetDispMode(Width As Integer, Height As Integer, color As Integer) As Long Dim DevM As DEVMODE '将取得的讯息存放在 DevM Dim xxa, xxb, xxc, xxd As Long Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM) DevM.dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFLAGS Or DM_DISPLAYFREQUENCY DevM.dmPelsWidth = Width '想要设定的屏幕宽度 DevM.dmPelsHeight = Height '想要设定的屏幕高度 DevM.dmDisplayFrequency = DevM.dmDisplayFrequency '想要设定的屏幕刷新率
'我们不更改色板,因为一旦更改色板就必须重新开机! 'DevM.dmBitsPerPel = GetDeviceCaps(Me.hdc, BITSPIXEL) DevM.dmBitsPerPel = color
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'设置窗口尺寸为1024*768
Public Function SetDispMode(Width As Integer, Height As Integer, color As Integer) As Long
Dim DevM As DEVMODE '将取得的讯息存放在 DevM
Dim xxa, xxb, xxc, xxd As Long
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
DevM.dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFLAGS Or DM_DISPLAYFREQUENCY
DevM.dmPelsWidth = Width '想要设定的屏幕宽度
DevM.dmPelsHeight = Height '想要设定的屏幕高度
DevM.dmDisplayFrequency = DevM.dmDisplayFrequency '想要设定的屏幕刷新率
'我们不更改色板,因为一旦更改色板就必须重新开机!
'DevM.dmBitsPerPel = GetDeviceCaps(Me.hdc, BITSPIXEL)
DevM.dmBitsPerPel = color
'以下这行指令会更改屏幕的分辨率
Call ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
End Function