Funzione ChangeDisplaySettingsExW (winuser.h)
La funzione ChangeDisplaySettingsEx modifica le impostazioni del dispositivo di visualizzazione specificato nella modalità grafica specificata.
Sintassi
LONG ChangeDisplaySettingsExW(
[in] LPCWSTR lpszDeviceName,
[in] DEVMODEW *lpDevMode,
HWND hwnd,
[in] DWORD dwflags,
[in] LPVOID lParam
);
Parametri
[in] lpszDeviceName
Puntatore a una stringa con terminazione Null che specifica il dispositivo di visualizzazione la cui modalità grafica cambierà. Vengono visualizzati solo i nomi dei dispositivi restituiti da EnumDisplayDevices sono validi. Per altre informazioni sui nomi associati a questi dispositivi di visualizzazione, vedere EnumDisplayDevices.
Il parametro
[in] lpDevMode
Puntatore a una struttura
Il membro dmSize
Membro | Significato |
---|---|
dmBitsPerPel | Bit per pixel |
dmPelsWidth | Larghezza pixel |
dmPelsHeight | Altezza pixel |
dmDisplayFlags | Flag di modalità |
dmDisplayFrequency | Frequenza modalità |
dmPosition | Posizione del dispositivo in una configurazione multi-monitor. |
Oltre a usare uno o più dei membri DEVMODE precedenti, è necessario impostare uno o più dei valori seguenti nel dmFields membro per modificare le impostazioni 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 |
hwnd
Riservato; deve essere null.
[in] dwflags
Indica la modalità grafica da modificare. Questo parametro può essere uno dei valori seguenti.
Specificando CDS_TEST consente a un'applicazione di determinare quali modalità grafiche sono effettivamente valide, senza che il sistema venga modificato.
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 viene restituito. Se non è possibile modificare la modalità grafica in modo dinamico, le informazioni vengono archiviate nel Registro di sistema e vengono restituite DISP_CHANGE_RESTART.
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.
[in] lParam
Se dwFlags è CDS_VIDEOPARAMETERS, lParam è un puntatore a una struttura VIDEOPARAMETERS. In caso contrario, lParam deve essere NULL.
Valore restituito
La funzione ChangeDisplaySettingsEx restituisce uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
|
La modifica delle impostazioni ha avuto esito positivo. |
|
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 le impostazioni nel Registro di sistema. |
|
Per il funzionamento della modalità grafica, è necessario riavviare il computer. |
Osservazioni
Per assicurarsi che la struttura
Quando si aggiunge un monitor di visualizzazione a un sistema a più monitor a livello di codice, impostare DEVMODE.dmFields su DM_POSITION e specificare una posizione (in DEVMODE.dmPosition) per il monitor che si sta aggiungendo adiacente ad almeno un pixel dell'area di visualizzazione di un monitor esistente. Per scollegare il monitoraggio, impostare DEVMODE.dmFields su DM_POSITION ma impostare DEVMODE.dmPelsWidth e DEVMODE.dmPelsHeight su zero. Per altre informazioni, vedere più monitor.
Quando la modalità di visualizzazione viene modificata in modo dinamico, il messaggio di 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 pixel |
Per modificare le impostazioni per più di una visualizzazione contemporaneamente, chiamare prima ChangeDisplaySettingsEx per ogni dispositivo singolarmente per aggiornare il Registro di sistema senza applicare le modifiche. Chiamare quindi
ChangeDisplaySettingsEx (lpszDeviceName1, lpDevMode1, NULL, (CDS_UPDATEREGISTRY | CDS_NORESET), NULL);
ChangeDisplaySettingsEx (lpszDeviceName2, lpDevMode2, NULL, (CDS_UPDATEREGISTRY | CDS_NORESET), NULL);
ChangeDisplaySettingsEx (NULL, NULL, NULL, 0, NULL);
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 ChangeDisplaySettingsEx 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
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) |
Vedere anche
funzioni del contesto di dispositivo