Função UpdateLayeredWindow (winuser.h)
Atualiza a posição, o tamanho, a forma, o conteúdo e a transluscência de uma janela em camadas.
Sintaxe
BOOL UpdateLayeredWindow(
[in] HWND hWnd,
[in, optional] HDC hdcDst,
[in, optional] POINT *pptDst,
[in, optional] SIZE *psize,
[in, optional] HDC hdcSrc,
[in, optional] POINT *pptSrc,
[in] COLORREF crKey,
[in, optional] BLENDFUNCTION *pblend,
[in] DWORD dwFlags
);
Parâmetros
[in] hWnd
Digite: HWND
Um identificador para uma janela em camadas. Uma janela em camadas é criada especificando WS_EX_LAYERED ao criar a janela com a função CreateWindowEx .
Windows 8: o estilo de WS_EX_LAYERED tem suporte para janelas de nível superior e janelas filho. As versões anteriores do Windows dão suporte apenas a WS_EX_LAYERED para janelas de nível superior.
[in, optional] hdcDst
Tipo: HDC
Um identificador para um controlador de domínio para a tela. Esse identificador é obtido especificando NULL ao chamar a função GetDC . Ele é usado para correspondência de cores de paleta quando o conteúdo da janela é atualizado. Se hdcDst for NULL, a paleta padrão será usada.
Se hdcSrc for NULL, hdcDst deverá ser NULL.
[in, optional] pptDst
Tipo: POINT*
Um ponteiro para uma estrutura que especifica a nova posição da tela da janela em camadas. Se a posição atual não estiver sendo alterada, pptDst poderá ser NULL.
[in, optional] psize
Tipo: SIZE*
Um ponteiro para uma estrutura que especifica o novo tamanho da janela em camadas. Se o tamanho da janela não estiver sendo alterado, psize poderá ser NULL. Se hdcSrc for NULL, psize deverá ser NULL.
[in, optional] hdcSrc
Tipo: HDC
Um identificador para um controlador de domínio para a superfície que define a janela em camadas. Esse identificador pode ser obtido chamando a função CreateCompatibleDC . Se a forma e o contexto visual da janela não estiverem sendo alterados, hdcSrc poderá ser NULL.
[in, optional] pptSrc
Tipo: POINT*
Um ponteiro para uma estrutura que especifica o local da camada no contexto do dispositivo. Se hdcSrc for NULL, pptSrc deverá ser NULL.
[in] crKey
Tipo: COLORREF
Uma estrutura que especifica a chave de cor a ser usada ao redigir a janela em camadas. Para gerar um COLORREF, use a macro RGB .
[in, optional] pblend
Tipo: BLENDFUNCTION*
Um ponteiro para uma estrutura que especifica o valor de transparência a ser usado ao redigir a janela em camadas.
[in] dwFlags
Tipo: DWORD
Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Use pblend como a função blend. Se o modo de exibição for de 256 cores ou menos, o efeito desse valor será o mesmo que o efeito de ULW_OPAQUE. |
|
Use crKey como a cor de transparência. |
|
Desenhe uma janela opaca em camadas. |
|
Force a função UpdateLayeredWindowIndirect a falhar se o tamanho da janela atual não corresponder ao tamanho especificado no psize. |
Se hdcSrc for NULL, dwFlags deverá ser zero.
Retornar valor
Tipo: BOOL
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
O DC de origem deve conter a superfície que define o conteúdo visível da janela em camadas. Por exemplo, você pode selecionar um bitmap em um contexto de dispositivo obtido chamando a função CreateCompatibleDC .
Um aplicativo deve chamar SetLayout no contexto do dispositivo hdcSrc para definir corretamente o modo de espelhamento. SetLayout espelho corretamente todos os desenhos em um HDC, preservando corretamente o glifo de texto e (opcionalmente) a ordem de direção do bitmap. Ele não pode modificar o desenho diretamente nos bits de um DIB (bitmap independente do dispositivo). Para obter mais informações, consulte Layout e espelhamento de janela.
A função UpdateLayeredWindow mantém a aparência da janela na tela. As janelas abaixo de uma janela em camadas não precisam ser repintadas quando são descobertas devido a uma chamada para UpdateLayeredWindow, pois o sistema as repintará automaticamente. Isso permite a animação perfeita da janela em camadas.
UpdateLayeredWindow sempre atualiza toda a janela. Para atualizar parte de uma janela, use o WM_PAINT tradicional e defina o valor de mesclagem usando SetLayeredWindowAttributes.
Para obter o melhor desempenho de desenho pela janela em camadas e pelas janelas subjacentes, a janela em camadas deve ser o menor possível. Um aplicativo também deve processar a mensagem e recriar suas janelas em camadas quando a profundidade da cor da exibição for alterada.
Para obter mais informações, consulte Windows em camadas.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Conjunto de APIs | ext-ms-win-ntuser-window-l1-1-1 (introduzido no Windows 8.1) |
Confira também
Conceitual
Outros recursos
Referência