Você está offline; aguardando reconexão

PROBLEMA: Você deve reiniciar o computador após usar a função ChangeDisplaySettingsEx para anexar um monitor secundário

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 308216
Sintomas
Em um sistema baseado no Windows XP ou Windows 2000, quando você usa a função ChangeDisplaySettingsEx para conectar um monitor secundário para a área de trabalho, a alteração não terá efeito até que você reinicie o computador.
Causa
Esse problema ocorre em monitores múltiplos computadores portáteis que usam uma implementação de modo de exibição dupla, com o qual você pode usar tanto um vídeo externo do CRT e o monitor LCD interno.
Resolução
Para resolver esse problema, chame ChangeDisplaySettings(NULL, 0) para atualizar a área de trabalho imediatamente após chamar ChangeDisplaySettingsEx para anexar o monitor secundário a área de trabalho. Isso faz com que o sistema para usar as configurações no registro e redefine cada uma dos dispositivos de vídeo.
Mais Informações
O código a seguir anexa o primeiro dispositivo secundário que ele encontra a área de trabalho sem exigir que você reinicie o computador:
BOOL AddUnattachedDisplayDeviceToDesktop(){    DWORD DispNum = 0;    DISPLAY_DEVICE DisplayDevice;    DEVMODE defaultMode;    HDC hdc;    int nWidth;    BOOL bFoundSecondary = FALSE;    hdc = GetDC(0);    nWidth = GetDeviceCaps(hdc,HORZRES);    ReleaseDC(0,hdc);    // Initialize DisplayDevice.    ZeroMemory(&DisplayDevice, sizeof(DisplayDevice));    DisplayDevice.cb = sizeof(DisplayDevice);    // Get display devices.    while ((EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0)) &&           (bFoundSecondary == FALSE))    {         ZeroMemory(&defaultMode, sizeof(DEVMODE));        defaultMode.dmSize = sizeof(DEVMODE);        if (!EnumDisplaySettings((LPSTR)DisplayDevice.DeviceName,             ENUM_REGISTRY_SETTINGS, &defaultMode))            return FALSE; // Store default failed        if (!(DisplayDevice.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE))        {            //Found the first secondary device.            bFoundSecondary = TRUE;            defaultMode.dmPosition.x += nWidth;            defaultMode.dmFields = DM_POSITION;             ChangeDisplaySettingsEx((LPSTR)DisplayDevice.DeviceName,                     &defaultMode, NULL, CDS_NORESET|CDS_UPDATEREGISTRY, NULL);             // A second call to ChangeDisplaySettings updates the monitor.            ChangeDisplaySettings(NULL, 0);         }         // Reinitialize DisplayDevice.         ZeroMemory(&DisplayDevice, sizeof(DisplayDevice));        DisplayDevice.cb = sizeof(DisplayDevice);        DispNum++;    } // End while the display devices.     return TRUE;}				

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 308216 - Última Revisão: 04/04/2006 16:57:25 - Revisão: 3.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbdswgdi2003swept kbgdi kbmultimon kbprb KB308216 KbMtpt
Comentários
s.dqid"; document.getElementsByTagName("head")[0].appendChild(m);