http://expert.csdn.net/Expert/topic/846/846849.xml?temp=.8004267

解决方案 »

  1.   

    http://www.21code.com/school/?pos=list&type=search&key=分辨率
      

  2.   

    Option ExplicitPrivate Declare Function EnumDisplaySettings _
        Lib "user32" Alias "EnumDisplaySettingsA" ( _
        ByVal lpszDeviceName As Long, _
        ByVal iModeNum As Long, _
        lpDevMode As Any) As Boolean
        
    Private Declare Function ChangeDisplaySettings _
        Lib "user32" Alias "ChangeDisplaySettingsA" ( _
        lpDevMode As Any, _
        ByVal dwflags As Long) As LongPrivate Type DEVMODE
        dmDeviceName As String * 32
        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 * 32
        dmUnusedPadding As Integer
        dmBitsPerPel As Integer
        dmPelsWidth As Long
        dmPelsHeight As Long
        dmDisplayFlags As Long
        dmDisplayFrequency As Long
    End TypeConst DM_BITSPERPEL = &H40000
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000
    Const DM_DISPLAYFREQUENCY = &H400000
    Private Sub ChangeRes(lngPelsWidth As Long, _
                          lngPelsHeight As Long, _
                          intBitsPerPel As Integer, _
                          lngDisplayFrequency As Long)
        Dim dm As DEVMODE
        
        Call EnumDisplaySettings(0&, -1, dm)
        
        dm.dmFields = DM_PELSWIDTH Or _
                      DM_PELSHEIGHT Or _
                      DM_BITSPERPEL Or _
                      DM_DISPLAYFREQUENCY
        dm.dmPelsWidth = lngPelsWidth
        dm.dmPelsHeight = lngPelsHeight
        dm.dmBitsPerPel = intBitsPerPel
        dm.dmDisplayFrequency = lngDisplayFrequency
        
        Call ChangeDisplaySettings(dm, 1)
    End Sub
    Private Sub Command1_Click()
        Call ChangeRes(1024, 768, 32, 85) '75为刷新率
    End Sub
    //得到刷新率
    Private Declare Function EnumDisplaySettings Lib "user32" _
            Alias "EnumDisplaySettingsA" _
            (ByVal lpszDeviceName As Long, _
            ByVal iModeNum As Long, _
            lpDevMode As Any) As Boolean
            
    Const CCDEVICENAME = 32
    Const CCFORMNAME = 32
    Const ENUM_CURRENT_SETTINGS = -1Private 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 Command1_Click()
        Dim DevM As DEVMODE
        'Get the info into DevM
        erg& = EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
        '输出屏幕刷新率值
        Debug.Print DevM.dmDisplayFrequency
    End Sub
      

  3.   

    Option Explicit
    Private Declare Function EnumDisplaySettings Lib "user32" Alias _
       "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _
       ByVal iModeNum As Long, lpDevMode As Any) As BooleanPrivate Declare Function ChangeDisplaySettings Lib "user32" Alias _
       "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As LongConst CCDEVICENAME = 32
    Const CCFORMNAME = 32
    Const DM_BITSPERPEL = &H40000
    Const DM_PELSWIDTH = &H80000
    Const DM_PELSHEIGHT = &H100000Private 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 TypeDim DevM As DEVMODE
    Dim nCurScreenW, nCurScreenH As IntegerPrivate Sub Command1_Click()
    Dim RetVal
        DevM.dmPelsWidth = 800 '宽
        DevM.dmPelsHeight = 600 '高
        DevM.dmDisplayFrequency = 70 '刷新率
        ChangeDisplaySettings DevM, 0
    End SubPrivate Sub Command2_Click()
        DevM.dmFields = DM_PELSWIDTH + DM_PELSHEIGHT
        DevM.dmPelsWidth = nCurScreenW
        DevM.dmPelsHeight = nCurScreenH
        ChangeDisplaySettings DevM, 0
        Unload Me
    End SubPrivate Sub Form_Load()
      Dim b As Boolean, i&
        b = EnumDisplaySettings(0&, i&, DevM)
        nCurScreenW = Screen.Width / Screen.TwipsPerPixelX
        nCurScreenH = Screen.Height / Screen.TwipsPerPixelY
    End Sub
      

  4.   

    收到了,谢谢你 pzl(小飞龙)。给分了!