我在修改了显示器的分辨率后发现刷新频率在修改前后不一致了。请教!http://expert.csdn.net/Expert/topic/2108/2108436.xml?temp=.5908625

解决方案 »

  1.   

    再加一行代码:
    DEVMODE.dmDisplayFrequency=你所要的刷新率
      

  2.   

    可以肯定这样行吗?我使用的以下函数,特意加上了“'''我加了这句话”所在行。
    结果与不加效果一样,总是把我的刷新频率变为60(原来是85)  注意:该函数最后一个参数(估计是为刷新频率所设的参数)不知道为何被屏蔽掉了,难道该函数的作者也无法搞定刷新频率的问题?!!!
    '设置显示器分辨率的执行函数
    Private Function SetDisplayMode(Width As Integer, Height As Integer, Color As Integer) As Long ', Freq As Long) As Long
        On Error GoTo ErrorHandler
        Const DM_PELSWIDTH = &H80000
        Const DM_PELSHEIGHT = &H100000
        Const DM_BITSPERPEL = &H40000
        Const DM_DISPLAYFLAGS = &H200000
        Const DM_DISPLAYFREQUENCY = &H400000
        With pNewMode
            .dmSize = Len(pNewMode)
            If Color = 0 Then 'Color = 0 时不更改屏幕颜色
                .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
            Else
                .dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT  'Or DM_DISPLAYFREQUENCY'属性率的更改还是没办法,不过,不加入此DM_DISPLAYFREQUENCY这个参数,只要系统支持,应该不会更改刷新率的
            End If
            .dmPelsWidth = Width
            .dmPelsHeight = Height
            If Color <> 0 Then
            .dmBitsPerPel = Color
            End If
            .dmDisplayFrequency = 85               '''我加了这句话
        End With
        pOldMode = lstrcpy(pNewMode, pNewMode)
        SetDisplayMode = ChangeDisplaySettings(pOldMode, 1)
        Exit Function
    ErrorHandler:
        MsgBox Err.Description, vbCritical, "VB广场"
    End Function