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