OptionExplicit PublicDeclareFunctionChangeDisplaySettingsLib”user32.dll”Alias”ChangeDisplaySettingsA” (ByReflpDevModeAsDEVMODE,ByValdwFlagsAsLong)AsLong lpszDeviceNameAsString,ByValiModeNumAsLong,ByReflpDevModeAsDEVMODE)AsLong ConstDM_PELSHEIGHTAsLong=&H100000 ConstCCHDEVICENAMEAsLong=32 PrivateTypeDEVMODE ——————————————————————————————- LngFrequencyAsLong)AsLong
PublicDeclareFunctionEnumDisplaySettingsLib”user32.dll”Alias”EnumDisplaySettingsA”(ByVal
ConstDM_PELSWIDTHAsLong=&H80000
ConstDM_BITSPERPELAsLong=&H40000
ConstDM_DISPLAYFREQUENCYAsLong=&H400000
ConstCCHFORMNAMEAsLong=32
ConstCDS_TEST=&H4
dmDeviceNameAsString*CCHDEVICENAME
dmSpecVersionAsInteger
dmDriverVersionAsInteger
dmSizeAsInteger
dmDriverExtraAsInteger
dmFieldsAsLong
dmOrientationAsInteger
dmPaperSizeAsInteger
dmPaperLengthAsInteger
dmPaperWidthAsInteger
dmScaleAsInteger
dmCopiesAsInteger
dmDefaultSourceAsInteger
dmPrintQualityAsInteger
dmColorAsInteger
dmDuplexAsInteger
dmYResolutionAsInteger
dmTTOptionAsInteger
dmCollateAsInteger
dmFormNameAsString*CCHFORMNAME
dmUnusedPaddingAsInteger
dmBitsPerPelAsInteger
dmPelsWidthAsLong
dmPelsHeightAsLong
dmDisplayFlagsAsLong
dmDisplayFrequencyAsLong
EndType
LngWidth//屏幕的宽(单位象素)
LngHeight//屏幕的高(单位象素)
IntColor//多少位颜色(e.g16or32)
LngFrequency//屏幕的刷新频率
声明:
调用该函数时要确定所设置的值在系统所允许的设置范围内,比如系统的最大刷新频率位80,而你
用把LngFrequency设位85,这样将带来无法预测的后果。
——————————————————————————————
PublicFunctionSetDisplaymode(LngWidthAsLong,LngHeightAsLong,IntColorAsInteger,
DimNewDevmodeAsDEVMODE
DimlngPAsLong
obtainsinformation
EnumDisplaySettings0&,0&,NewDevmode
WithNewDevmode
.dmFields=DM_PELSHEIGHTOrDM_PELSWIDTHOrDM_BITSPERPELOrDM_DISPLAYFREQUENCY
.dmPelsWidth=LngWidth
.dmPelsHeight=LngHeight
.dmBitsPerPel=IntColor
.dmDisplayFrequency=LngFrequency
EndWith
SetDisplaymode=ChangeDisplaySettings(NewDevmode,CDS_TEST)
EndFunction