Função ChangeDisplaySettingsExA (winuser.h)
A função ChangeDisplaySettingsEx altera as configurações do dispositivo de exibição especificado para o modo gráfico especificado.
Sintaxe
LONG ChangeDisplaySettingsExA(
[in] LPCSTR lpszDeviceName,
[in] DEVMODEA *lpDevMode,
HWND hwnd,
[in] DWORD dwflags,
[in] LPVOID lParam
);
Parâmetros
[in] lpszDeviceName
Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o dispositivo de exibição cujo modo gráfico será alterado. Somente exibir nomes de dispositivo conforme retornado por EnumDisplayDevices são válidos. Consulte EnumDisplayDevices para obter mais informações sobre os nomes associados a esses dispositivos de exibição.
O parâmetro lpszDeviceName
[in] lpDevMode
Um ponteiro para uma estrutura de DEVMODE
O membro
Membro | Significado |
---|---|
dmBitsPerPel | Bits por pixel |
dmPelsWidth | Largura do pixel |
dmPelsHeight | Altura do pixel |
dmDisplayFlags | Sinalizadores de modo |
dmDisplayFrequency | Frequência de modo |
de dmPosition | Posição do dispositivo em uma configuração de vários monitores. |
Além de usar um ou mais dos membros
Valor | Significado |
---|---|
DM_BITSPERPEL | Use o |
DM_PELSWIDTH | Use o |
DM_PELSHEIGHT | Use o |
DM_DISPLAYFLAGS | Use o valor |
DM_DISPLAYFREQUENCY | Use o |
DM_POSITION | Use o valor de dmPosition |
hwnd
Reservado; deve ser NULL.
[in] dwflags
Indica como o modo gráfico deve ser alterado. Esse parâmetro pode ser um dos valores a seguir.
Especificar CDS_TEST permite que um aplicativo determine quais modos gráficos são realmente válidos, sem fazer com que o sistema mude para eles.
Se CDS_UPDATEREGISTRY for especificado e for possível alterar o modo gráfico dinamicamente, as informações serão armazenadas no registro e DISP_CHANGE_SUCCESSFUL será retornado. Se não for possível alterar o modo gráfico dinamicamente, as informações serão armazenadas no registro e DISP_CHANGE_RESTART será retornada.
Se CDS_UPDATEREGISTRY for especificado e as informações não puderem ser armazenadas no registro, o modo gráfico não será alterado e DISP_CHANGE_NOTUPDATED será retornado.
[in] lParam
Se
Valor de retorno
A função
Código de retorno | Descrição |
---|---|
|
A alteração das configurações foi bem-sucedida. |
|
A alteração das configurações não teve êxito porque o sistema é capaz de DualView. |
|
Um conjunto inválido de sinalizadores foi passado. |
|
Não há suporte para o modo gráfico. |
|
Um parâmetro inválido foi passado. Isso pode incluir um sinalizador inválido ou uma combinação de sinalizadores. |
|
O driver de exibição falhou no modo gráfico especificado. |
|
Não é possível gravar configurações no Registro. |
|
O computador deve ser reiniciado para que o modo gráfico funcione. |
Observações
Para garantir que a estrutura de
Ao adicionar um monitor de exibição a um sistema de vários monitores programaticamente, defina deVMODE.dmFields para DM_POSITION e especifique uma posição (em DEVMODE.dmPosition) para o monitor que você está adicionando que é adjacente a pelo menos um pixel da área de exibição de um monitor existente. Para desanexar o monitor, defina DEVMODE.dmFields para DM_POSITION mas defina DEVMODE.dmPelsWidth e DEVMODE.dmPelsHeight como zero. Para obter mais informações, consulte Vários Monitores de Exibição.
Quando o modo de exibição é alterado dinamicamente, a mensagem WM_DISPLAYCHANGE é enviada a todos os aplicativos em execução com os seguintes parâmetros de mensagem.
Parâmetros | Significado |
---|---|
wParam | Novos bits por pixel |
LOWORD(lParam) | Nova largura de pixel |
HIWORD(lParam) | Altura do novo pixel |
Para alterar as configurações de mais de uma exibição ao mesmo tempo, primeiro chame ChangeDisplaySettingsEx para cada dispositivo atualizar individualmente o registro sem aplicar as alterações. Em seguida, chame
ChangeDisplaySettingsEx (lpszDeviceName1, lpDevMode1, NULL, (CDS_UPDATEREGISTRY | CDS_NORESET), NULL);
ChangeDisplaySettingsEx (lpszDeviceName2, lpDevMode2, NULL, (CDS_UPDATEREGISTRY | CDS_NORESET), NULL);
ChangeDisplaySettingsEx (NULL, NULL, NULL, 0, NULL);
Virtualização de DPI
Essa API não participa da virtualização de DPI. A entrada fornecida está sempre em termos de pixels físicos e não está relacionada ao contexto de chamada.Nota
O cabeçalho winuser.h define ChangeDisplaySettingsEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winuser.h (inclua Windows.h) |
biblioteca | User32.lib |
de DLL |
User32.dll |
conjunto de API | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (introduzido no Windows 10, versão 10.0.14393) |
Consulte também
Funções de contexto do dispositivo
Visão geral dos contextos do dispositivo
EnumDisplayDevices