Funzione ChangeDisplaySettingsA (winuser.h)
La funzione ChangeDisplaySettings modifica le impostazioni del dispositivo di visualizzazione predefinito in modalità grafica specificata.
Per modificare le impostazioni di un dispositivo di visualizzazione specificato, usare la funzione ChangeDisplaySettingsEx .
Sintassi
LONG ChangeDisplaySettingsA(
[in] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
Parametri
[in] lpDevMode
Puntatore a una struttura DEVMODE che descrive la nuova modalità grafica. Se lpDevMode è NULL, tutti i valori attualmente presenti nel Registro di sistema verranno usati per l'impostazione di visualizzazione. Il passaggio di NULL per il parametro lpDevMode e 0 per il parametro dwFlags è il modo più semplice per tornare alla modalità predefinita dopo una modifica della modalità dinamica.
Il membro dmSize di DEVMODE deve essere inizializzato in byte della struttura DEVMODE . Il membro dmDriverExtra di DEVMODE deve essere inizializzato per indicare il numero di byte di dati del driver privato che seguono la struttura DEVMODE . Inoltre, è possibile usare uno o tutti i membri seguenti della struttura DEVMODE .
Membro | Significato |
---|---|
dmBitsPerPel | Bit per pixel |
dmPelsWidth | Larghezza pixel |
dmPelsHeight | Altezza pixel |
dmDisplayFlags | Flag modalità |
dmDisplayFrequency | Frequenza della modalità |
dmPosition | Posizione del dispositivo in una configurazione con più monitor. |
Oltre a usare uno o più membri DEVMODE precedenti, è necessario impostare uno o più dei valori seguenti nel membro dmFields per modificare l'impostazione di visualizzazione.
Valore | Significato |
---|---|
DM_BITSPERPEL | Usare il valore dmBitsPerPel . |
DM_PELSWIDTH | Usare il valore dmPelsWidth . |
DM_PELSHEIGHT | Usare il valore dmPelsHeight . |
DM_DISPLAYFLAGS | Usare il valore dmDisplayFlags . |
DM_DISPLAYFREQUENCY | Usare il valore dmDisplayFrequency . |
DM_POSITION | Usare il valore dmPosition . |
[in] dwFlags
Indica la modalità grafica da modificare. Questo parametro può avere uno dei valori seguenti.
Specificare CDS_TEST consente a un'applicazione di determinare quali modalità grafiche sono effettivamente valide, senza che il sistema cambi in tale modalità grafica.
Se viene specificato CDS_UPDATEREGISTRY ed è possibile modificare la modalità grafica in modo dinamico, le informazioni vengono archiviate nel Registro di sistema e DISP_CHANGE_SUCCESSFUL vengono restituite. Se non è possibile modificare la modalità grafica in modo dinamico, le informazioni vengono archiviate nel Registro di sistema e DISP_CHANGE_RESTART vengono restituite.
Se viene specificato CDS_UPDATEREGISTRY e le informazioni non possono essere archiviate nel Registro di sistema, la modalità grafica non viene modificata e DISP_CHANGE_NOTUPDATED viene restituita.
Valore restituito
La funzione ChangeDisplaySettings restituisce uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
|
La modifica delle impostazioni è riuscita. |
|
La modifica delle impostazioni non è riuscita perché il sistema è in grado di supportare DualView. |
|
È stato passato un set di flag non valido. |
|
La modalità grafica non è supportata. |
|
È stato passato un parametro non valido. Può includere un flag o una combinazione di flag non validi. |
|
Il driver di visualizzazione non è riuscito nella modalità grafica specificata. |
|
Impossibile scrivere impostazioni nel Registro di sistema. |
|
Per il funzionamento della modalità grafica, è necessario riavviare il computer. |
Commenti
Per assicurarsi che la struttura DEVMODE passata a ChangeDisplaySettings sia valida e contenga solo i valori supportati dal driver di visualizzazione, usare DEVMODE restituito dalla funzione EnumDisplaySettings .
Quando la modalità di visualizzazione viene modificata dinamicamente, il messaggio WM_DISPLAYCHANGE viene inviato a tutte le applicazioni in esecuzione con i parametri del messaggio seguenti.
Parametri | Significato |
---|---|
wParam | Nuovi bit per pixel |
LOWORD(lParam) | Nuova larghezza pixel |
HIWORD(lParam) | Nuova altezza in pixel |
Virtualizzazione DPI
Questa API non partecipa alla virtualizzazione DPI. L'input specificato è sempre in termini di pixel fisici e non è correlato al contesto chiamante.Nota
L'intestazione winuser.h definisce ChangeDisplaySettings come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (introdotto in Windows 10, versione 10.0.14393) |
Vedi anche
Funzioni del contesto di dispositivo