Função DwmSetIconicThumbnail (dwmapi.h)
Define um bitmap estático e icônico em uma janela ou guia a ser usado como uma representação em miniatura. A barra de tarefas pode usar esse bitmap como um destino de comutador de miniatura para a janela ou guia.
Sintaxe
HRESULT DwmSetIconicThumbnail(
[in] HWND hwnd,
[in] HBITMAP hbmp,
[in] DWORD dwSITFlags
);
Parâmetros
[in] hwnd
Um identificador para a janela ou guia. Essa janela deve pertencer ao processo de chamada.
[in] hbmp
Um identificador para o bitmap para representar a janela especificada por hwnd .
[in] dwSITFlags
As opções de exibição para a miniatura. Um dos seguintes valores:
0 (0x00000000)
Nenhum quadro é exibido ao redor da miniatura fornecida.
DWM_SIT_DISPLAYFRAME (0x00000001)
Exibe um quadro ao redor da miniatura fornecida.
Valor retornado
Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
Um aplicativo normalmente chama a função DwmSetIconicThumbnail depois de receber uma mensagem de WM_DWMSENDICONICTHUMBNAIL para sua janela. A miniatura não deve exceder a coordenada x máxima e a coordenada y especificadas nessa mensagem. A miniatura também deve ter uma profundidade de cor de 32 bits.
O aplicativo chama DwmInvalidateIconicBitmaps para indicar ao DWM (Gerenciador de Janelas da Área de Trabalho) que as miniaturas icônicas e os bitmaps de visualização ao vivo estão desatualizados e devem ser atualizados. Em seguida, o DWM solicita novas versões da janela quando elas são necessárias. No entanto, se o cache de bitmap do DWM estiver cheio, o DWM não solicitará versões atualizadas.
O DWM usa uma cópia do bitmap, mas o aplicativo pode liberar essa cópia a qualquer momento devido a restrições de memória. Se a cópia for liberada, a janela não será notificada, mas poderá receber uma solicitação de WM_DWMSENDICONICTHUMBNAIL subsequente quando sua miniatura for necessária novamente. O chamador retém a propriedade do bitmap original e é responsável por liberar os recursos que ele usa quando não é mais necessário.
Exemplos
Antes de chamar DwmSetIconicThumbnail, o aplicativo deve primeiro chamar a função DwmSetWindowAttribute para definir os atributos DWMWA_FORCE_ICONIC_REPRESENTATION e DWMWA_HAS_ICONIC_BITMAP , conforme mostrado no exemplo a seguir.
// Set DWM window attributes to provide the iconic bitmap, and
// to always render the thumbnail using the iconic bitmap.
BOOL fForceIconic = TRUE;
BOOL fHasIconicBitmap = TRUE;
DwmSetWindowAttribute(
hwnd,
DWMWA_FORCE_ICONIC_REPRESENTATION,
&fForceIconic,
sizeof(fForceIconic));
DwmSetWindowAttribute(
hwnd,
DWMWA_HAS_ICONIC_BITMAP,
&fHasIconicBitmap,
sizeof(fHasIconicBitmap));
Em seguida, o aplicativo chama a função DwmSetIconicThumbnail em resposta a uma mensagem WM_DWMSENDICONICTHUMBNAIL , conforme mostrado no exemplo a seguir.
case WM_DWMSENDICONICTHUMBNAIL:
{
// This window is being asked to provide its iconic bitmap. This indicates
// a thumbnail is being drawn.
hbm = CreateDIB(HIWORD(lParam), LOWORD(lParam));
if (hbm)
{
hr = DwmSetIconicThumbnail(hwnd, hbm, 0);
DeleteObject(hbm);
}
}
break;
Para obter o código de exemplo completo, consulte o exemplo Personalizar uma miniatura icônica e um bitmap de visualização ao vivo .
Requisitos
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | dwmapi.h |
Biblioteca | Dwmapi.lib |
DLL | Dwmapi.dll; Uxtheme.dll |