Partilhar via


Manipulando notificação TTN_NEEDTEXT para dicas de ferramenta

Como parte de habilitando dicas de ferramenta, você controla a mensagem de TTN_NEEDTEXT adicionando a seguinte entrada para mapa de mensagem da janela do proprietário:

ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyDialog::OnTtnNeedText)
  • memberFxn
    A função de membro a ser chamada quando o texto é necessário para esse botão.

Observe que a ID de uma dica de ferramenta é sempre 0.

Declare a função de manipulador na definição de classe como segue:

afx_msg BOOL OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult);

onde parâmetros italicizados são:

  • id
    Identificador de controle que enviou a mensagem de notificação. Não usado. A ID do controle é obtido da estrutura de NMHDR .

  • pNMHDR
    Um ponteiro para a estrutura de NMTTDISPINFO . Essa estrutura é discutida também mais em A estrutura de TOOLTIPTEXT.

  • pResult
    Um ponteiro para um resultante código que você pode definir antes de retornar. Os manipuladores deTTN_NEEDTEXT pode ignorar o parâmetro de pResult .

Como exemplo de um manipulador de notificação de autenticação exibição:

BOOL CMyDialog::OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
   UNREFERENCED_PARAMETER(id);

   NMTTDISPINFO *pTTT = (NMTTDISPINFO *) pNMHDR;
   UINT_PTR nID = pNMHDR->idFrom;
   BOOL bRet = FALSE;

   if (pTTT->uFlags & TTF_IDISHWND)
   {
      // idFrom is actually the HWND of the tool
      nID = ::GetDlgCtrlID((HWND)nID);
      if(nID)
      {
         _stprintf_s(pTTT->szText, sizeof(pTTT->szText) / sizeof(TCHAR), 
            _T("Control ID = %d"), nID);
         pTTT->hinst = AfxGetResourceHandle();
         bRet = TRUE;
      }
   }

   *pResult = 0;

   return bRet;
}

Chame EnableToolTips (este fragmento obtido de OnInitDialog):

EnableToolTips(TRUE);

Consulte também

Conceitos

Dicas de ferramenta no Windows derivadas de CFrameWnd