怎样得到当前的屏幕分辨率?在程序设计中我们经常要改变窗体的大小,而这也依赖于屏幕的分辨率,下面的例子将演示如何得到当前屏幕的分辨率:ResWidth = Screen.Width \ Screen.TwipsPerPixelXResHeight = Screen.Height \ Screen.TwipsPerPixelYScreenRes = ResWidth & "x" & ResHeight ResWidth和ResHeight分别表示屏幕的宽和高,比如这样的结果:800x600
--------------------------------------------------------------------------------如何改变屏幕的分辨率? 对于很多VB程序员来说怎样改变屏幕的分辨率一直是一个难题,而且在API-Viewer里竟然没有EnumDisplaySettings和ChangeDisplaySettings!!遵从以下的步骤,你就可以改变屏幕的分辨率。将以下代码加入模块文件: Declare Function EnumDisplaySettings Lib "user32" _Alias "EnumDisplaySettingsA" _(ByVal lpszDeviceName As Long, _ByVal iModeNum As Long, _lpDevMode As Any) As Boolean Declare Function ChangeDisplaySettings Lib "user32" _Alias "ChangeDisplaySettingsA" _(lpDevMode As Any, ByVal dwFlags As Long) As Long Declare Function ExitWindowsEx Lib "user32" _(ByVal uFlags As Long, ByVal dwReserved As Long) As Long Public Const EWX_LOGOFF = 0Public Const EWX_SHUTDOWN = 1Public Const EWX_REBOOT = 2Public Const EWX_FORCE = 4Public Const CCDEVICENAME = 32Public Const CCFORMNAME = 32Public Const DM_BITSPERPEL = &H40000Public Const DM_PELSWIDTH = &H80000Public Const DM_PELSHEIGHT = &H100000Public Const CDS_UPDATEREGISTRY = &H1Public Const CDS_TEST = &H4Public Const DISP_CHANGE_SUCCESSFUL = 0Public Const DISP_CHANGE_RESTART = 1 Type DEVMODEdmDeviceName As String * CCDEVICENAMEdmSpecVersion As IntegerdmDriverVersion As IntegerdmSize As IntegerdmDriverExtra As IntegerdmFields As LongdmOrientation As IntegerdmPaperSize As IntegerdmPaperLength As IntegerdmPaperWidth As IntegerdmScale As IntegerdmCopies As IntegerdmDefaultSource As IntegerdmPrintQuality As IntegerdmColor As IntegerdmDuplex As IntegerdmYResolution As IntegerdmTTOption As IntegerdmCollate As IntegerdmFormName As String * CCFORMNAMEdmUnusedPadding As IntegerdmBitsPerPel As IntegerdmPelsWidth As LongdmPelsHeight As LongdmDisplayFlags As LongdmDisplayFrequency As LongEnd Type  2、下面的例子将演示如何把屏幕分辨率更改为640x480(保持原来的颜色数)。 Dim DevM As DEVMODE'DevM收集信息erg& = EnumDisplaySettings(0&, 0&, DevM)'不改变颜色数目是因为如果改变颜色数就要重新启动 DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT 'Or DM_BITSPERPELDevM.dmPelsWidth = 640 '屏幕宽度DevM.dmPelsHeight = 480 '屏幕高度'DevM.dmBitsPerPel = 32 (还可以为 8, 16, 32甚至4)'改变显示模式并检查是否可能 erg& = ChangeDisplaySettings(DevM, CDS_TEST)'检查是否成功 Select Case erg&Case DISP_CHANGE_RESTARTan = MsgBox("你现在必须重新启动系统,执行吗?", vbYesNo + vbSystemModal, "消息")If an = vbYes Then erg& = ExitWindowsEx(EWX_REBOOT, 0&)End IfCase DISP_CHANGE_SUCCESSFULerg& = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)MsgBox "一切正常!", vbOKOnly + vbSystemModal, "成功"Case ElseMsgBox "显示模式不支持", vbOKOnly + vbSystemModal, "错误"End Select End Sub