工程文件名:Chdsp.vbp
Type=Exe
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\PWIN95\SYSTEM\\STDOLE2.TLB#OLE Automation
Module=Module1; ChDsp.bas
Form=ChDsp.frm
Startup="Form1"
HelpFile=""
Command32=""
Name="Project1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="KJ Studio"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1
模块名:Chdsp.bas
Attribute VB_Name = "Module1"
Option ExplicitPublic Const CCHFORMNAME = 32
Public Const CCHDEVICENAME = 32
Public Const DM_BITSPERPEL = &H40000
Public Const DM_PELSWIDTH = &H80000
Public Const DM_PELSHEIGHT = &H100000Public Const CDS_UPDATEREGISTRY = 1
Public Const CDS_TEST = 2Type DEVMODE
        dmDeviceName As String * CCHDEVICENAME
        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 * CCHFORMNAME
        dmUnusedPadding As Integer
        dmBitsPerPel As Integer
        dmPelsWidth As Long
        dmPelsHeight As Long
        dmDisplayFlags As Long
        dmDisplayFrequency As Long
End TypeDeclare 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窗体文件名:Chdsp.frm
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "ChangeDisplaySettings 范例程序"
   ClientHeight    =   3240
   ClientLeft      =   60
   ClientTop       =   348
   ClientWidth     =   6252
   LinkTopic       =   "Form1"
   ScaleHeight     =   3240
   ScaleWidth      =   6252
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton Command2 
      Caption         =   "设定"
      Height          =   495
      Left            =   4440
      TabIndex        =   2
      Top             =   1080
      Width           =   1695
   End
   Begin VB.CommandButton Command1 
      Caption         =   "测试"
      Height          =   495
      Left            =   4440
      TabIndex        =   1
      Top             =   240
      Width           =   1695
   End
   Begin VB.ListBox List1 
      Height          =   2748
      Left            =   240
      TabIndex        =   0
      Top             =   240
      Width           =   3975
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = FalseOption ExplicitDim nDisplay As Integer, devM() As DEVMODEPrivate Sub Command1_Click()
    devM(List1.ListIndex).dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL    If ChangeDisplaySettings(devM(List1.ListIndex), CDS_TEST) = 0 Then
        MsgBox "测试成功!"
    Else
        MsgBox "测试失败!"
    End If
End SubPrivate Sub Command2_Click()
    devM(List1.ListIndex).dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL    If ChangeDisplaySettings(devM(List1.ListIndex), 0) = 0 Then
        MsgBox "设定成功!"
    Else
        MsgBox "设定失败!"
    End If
End SubPrivate Sub Form_Load()
    Dim HasMore As Long, i As Integer
    
    i = 0
    Do
        ReDim Preserve devM(0 To i)
        
        HasMore = EnumDisplaySettings(0, i, devM(i))
        If HasMore = 0 Then Exit Do
        If devM(i).dmBitsPerPel = 24 Then
            List1.AddItem "全彩" & vbTab & _
                      devM(i).dmPelsWidth & vbTab & devM(i).dmPelsHeight
        Else
            List1.AddItem 2 ^ devM(i).dmBitsPerPel & vbTab & _
                      devM(i).dmPelsWidth & vbTab & devM(i).dmPelsHeight
        End If
        i = i + 1
    Loop
    nDisplay = i
End Sub