1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
Public X As Long
Public Y As Long
Public COLOR As Long
Public HAUT As Long
Public LARG As Long
Public FREQ As Long
Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(IpDevMode As Any, ByVal dwflags As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Const CCDEVICENAME = 32
Private Const CCFORMNAME = 32
Private Const DM_BITSPERPEL = &H40000
Private Const DM_PELSWIDTH = &H80000
Private Const DM_PELSHEIGHT = &H100000
Private Const CDS_UPDATEREGISTRY = &H1
Private Const CDS_TEST = &H4
Private Const DISP_CHANGE_SUCCESSFUL = 0
Private Const DISP_CHANGE_RESTART = 1
Private Const ENUM_CURRENT_SETTINGS = &HFFFF - 1
Private Const WM_DEVMODECHANGE = &H1B
Private Const HWND_BROADCAST = &HFFFF&
Private Const HWND_DESKTOP = 0
Private 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 Type
Dim dmEcran As DEVMODE
Dim dmType As DEVMODE
Public Function CurrentDisplaySettings() As DEVMODE
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, CurrentDisplaySettings)
End Function
Public Sub ResolutionEcran(sgWidth As Long, sgHeight As Long, FrequenceRefresh As Long, QColor As Long)
dmEcran.dmSize = LenB(dmEcran)
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, dmEcran)
dmEcran.dmPelsWidth = sgWidth
dmEcran.dmPelsHeight = sgHeight
dmEcran.dmDisplayFrequency = FrequenceRefresh 'en Hz
'4 : 16 colors
'8 : 256 colors
'16 : High Color
'24 : True Color
'32 : True Color
dmEcran.dmBitsPerPel = QColor
Call ChangeDisplaySettings(dmEcran, CDS_UPDATEREGISTRY)
Call SendMessage(HWND_BROADCAST, WM_DEVMODECHANGE, 0, 0)
Call SendMessage(GetDesktopWindow, WM_DEVMODECHANGE, 0, 0)
End Sub |
Partager