Compartilhar via


Usando as funções de configuração do High-Level Monitor

Enumerando monitores físicos

Há várias funções que enumeram dispositivos de exibição, incluindo EnumDisplayMonitors e MonitorFromWindow. Essas funções estão documentadas na documentação do Windows GDI, sob o tópico Vários Monitores de Exibição. Essas funções retornam identificadores HMONITOR . No entanto, apesar do nome, um identificador HMONITOR pode ser associado a mais de um monitor físico. Para definir as configurações em um monitor, o aplicativo deve obter um identificador exclusivo para o monitor físico chamando GetPhysicalMonitorsFromHMONITOR.

Se o aplicativo usar Direct3D, você poderá obter um identificador de monitor de um dispositivo Direct3D chamando GetPhysicalMonitorsFromIDirect3DDevice9.

Funções com suporte

Um monitor pode não dar suporte a todas as funções de configuração do monitor. Para descobrir quais funções um monitor dá suporte, chame GetMonitorCapabilities.

Configurações do Monitor Contínuo

Uma configuração de monitor contínuo é aquela que pode variar entre algum valor mínimo e máximo. A maioria das funções de configuração de monitor de alto nível controla as configurações do monitor contínuo. Por exemplo, brilho e contraste são configurações contínuas.

As configurações de monitor contínuo não têm unidades do mundo real definidas. As unidades são arbitrárias e podem variar de um fabricante para outro. Se dois monitores tiverem o mesmo valor de brilho, por exemplo, um monitor poderá parecer muito mais brilhante que outro. Normalmente, um aplicativo apresentará controles deslizantes ou controles de cima para baixo para o usuário. Em seguida, o usuário pode ajustar as configurações para dar a melhor qualidade subjetiva.

Alterações no Estado do Monitor

Um monitor pode alterar os estados por vários motivos, incluindo:

  • O usuário altera as configurações com os controles do painel frontal do monitor.
  • O usuário altera a resolução da tela do monitor, a taxa de atualização ou a profundidade de bits.
  • O aplicativo usa as funções de monitor de baixo nível para alterar uma configuração que não está acessível nas funções de alto nível.
  • O aplicativo chama RestoreMonitorFactoryColorDefaults ou RestoreMonitorFactoryDefaults.

Todos esses eventos podem alterar as configurações do monitor. Eles também podem alterar o valor mínimo e máximo de uma configuração.

Dependências entre as configurações do Monitor

Alterar a temperatura da cor pode alterar a unidade atual e obter configurações, e o inverso também é verdadeiro. Essas são as únicas dependências entre as funções de configuração de monitor de alto nível. Outras configurações podem estar acessíveis somente por meio das funções de monitor de baixo nível. Pode haver dependências entre essas configurações e as configurações de alto nível. Essas dependências são específicas do fornecedor. Um aplicativo pode lidar com esse problema de várias maneiras:

  • Use apenas funções de alto nível.
  • Depois de chamar uma função de baixo nível, obtenha o valor atual de cada configuração de monitor. Infelizmente, essa abordagem pode ser lenta, porque obter cada configuração leva cerca de 40 milissegundos.
  • Use funções de baixo nível apenas com modelos de monitor específicos cujo comportamento você entende.

Configurações de monitor desabilitadas

Um aplicativo não pode desabilitar nenhuma configuração de monitor chamando as funções de monitor de alto nível. No entanto, um aplicativo poderá desabilitar acidentalmente uma configuração se usar as funções de baixo nível para alterar uma configuração de monitor que não é compatível com as funções de alto nível. Além disso, um usuário pode desabilitar uma configuração usando o controle de painel frontal. Esses comportamentos são específicos do fornecedor.

Se uma configuração de monitor for desabilitada, qualquer função que definir ou recuperar essa configuração falhará e definirá o código do último erro como ERROR_DISABLED_MONITOR_SETTING. Quando isso ocorre, o aplicativo pode fazer um dos seguintes procedimentos:

  • Exiba uma mensagem de erro e sugira ao usuário que ele tente ajustar a configuração usando o controle de painel frontal.
  • Chame a função RestoreMonitorFactoryDefaults . Se um monitor tiver o sinalizador de recursos MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS, essa função habilitará todas as configurações de monitor compatíveis com as funções de monitor de alto nível. Infelizmente, a função também redefine as configurações do monitor para o padrão de fábrica.

Usando a configuração do Monitor