Compartilhar via


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

Dica de ferramenta

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; 
}