Função RegisterForTooltipDismissNotification (winuser.h)
Registra ou cancela o registro de janelas para receber uma notificação para ignorar suas janelas de dica de ferramenta.
Sintaxe
BOOL RegisterForTooltipDismissNotification(
HWND hWnd,
TOOLTIP_DISMISS_FLAGS tdFlags
);
Parâmetros
hWnd
Digite: HWND
O identificador da janela para receber a mensagem WM_TOOLTIPDISMISS .
tdFlags
Tipo: TOOLTIP_DISMISS_FLAGS
Um valor da enumeração que especifica se a função registra ou cancela o registro da janela. TDF_REGISTER registrar; TDF_UNREGISTER cancelar o registro.
Retornar valor
TRUE se a janela foi registrada com êxito ou não registrada; caso contrário, FALSE. (Consulte os comentários.)
Comentários
Essa função torna as dicas de ferramenta mais acessíveis, permitindo que aplicativos e estruturas que dão suporte a dicas de ferramenta registrem e cancelem o registro sejam notificados por uma mensagem de WM_TOOLTIPDISMISS quando o sistema exigir que todas as dicas de ferramenta que mostram sejam ignoradas.
Os aplicativos devem se registrar para essa notificação sempre que mostrarem uma dica de ferramenta e ocultarem suas dicas de ferramenta em resposta a uma mensagem de WM_TOOLTIPDISMISS . Quando uma dica de ferramenta está oculta por algum outro motivo, como uma ação do mouse, o aplicativo deve cancelar o registro.
Os gatilhos definidos pelo sistema para a demissão da dica de ferramenta incluem uma tecla Ctrl solitária para cima ou Ctrl+Shift+F10. (O conjunto de gatilhos pode mudar ao longo do tempo.)
A função usa o HWND de uma janela de dica de ferramenta ou o HWND de uma janela de aplicativo que tem dicas de ferramenta filho.
- Se um HWND de dica de ferramenta em si estiver registrado, espera-se que a janela de dica de ferramenta se registre ao mostrar e ignorar ao receber uma mensagem de WM_TOOLTIPDISMISS .
- Se um aplicativo HWND se registrar em nome de suas dicas de ferramenta, espera-se que a janela do aplicativo se registre ao mostrar dicas de ferramenta e ignore todas as dicas de ferramenta ao receber uma mensagem de WM_TOOLTIPDISMISS .
Espera-se que as janelas de aplicativo ou dica de ferramenta chamem a função para registrar cada vez que as dicas de ferramenta forem mostradas. As janelas registradas são automaticamente canceladas ao postar WM_TOOLTIPDISMISS.
O sinalizador TDF_UNREGISTER é usado para cancelar explicitamente o registro de uma janela quando uma janela de dica de ferramenta é ignorada pela prerrogativa do aplicativo ou da estrutura (como mover o cursor para fora da "zona segura"). Se um aplicativo ou uma estrutura chamar RegisterForTooltipDismissNotification
com TDF_UNREGISTER depois que a janela tiver sido cancelada automaticamente, a função retornará FALSE. Não há nenhum impacto nos registros futuros.
Valores retornados
O HWND passado para a função deve pertencer ao processo de chamada; caso contrário, a função retornará FALSE.
Quando chamada com TDF_REGISTER e uma janela pertencente ao processo de chamada, a função retornará TRUE se a janela tiver sido registrada com êxito ou FALSE se a janela já estiver registrada. A janela é tratada como registrada de qualquer maneira.
Quando chamada com TDF_UNREGISTER e uma janela pertencente ao processo de chamada, a função retornará TRUE se a janela não for registrada com êxito ou FALSE se as janelas não estiverem registradas no momento. A janela é tratada como não registrada de qualquer maneira.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 11 Build 22621 |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h |
Biblioteca | user32.lib |
Confira também
Exemplos
// WndProc: Window procedure for a window that is the parent of one or more
// tooltip windows.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_TOOLTIPDISMISS:
// System is asking us to dismiss tooltip window due to system hotkey.
if (hwndVisibleTooltip)
{
// Hide the tooltip window. Not necessary to unregister as window is
// automatically unregistered upon notification.
ShowWindow(hwndVisibleTooltip, SW_HIDE);
hwndVisibleTooltip = nullptr;
}
break;
case WM_NOTIFY:
{
LPNMHDR toolInfo = (LPNMHDR) lParam;
switch (toolInfo->code)
{
case TTN_SHOW:
// Notification that a tooltip is about to show. Register this
// window to receive dismiss notification when the system wants
// to dismiss tooltips (such as in response to a system hotkey).
RegisterForTooltipDismissNotification(hWnd, TDF_REGISTER);
// Remember the visible tooltip window, so we know which one to
// hide when we receive WM_TOOLTIPTISMISS.
hwndVisibleTooltip = toolInfo->hwndFrom;
break;
case TTN_POP:
// Notification that a tooltip is about to hide
if (hwndVisibleTooltip)
{
// With the tooltip hiding, we will no longer need the system
// dismiss notification, so we can unregister from it.
RegisterForTooltipDismissNotification(hWnd, TDF_UNREGISTER);
hwndVisibleTooltip = nullptr;
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de