Como implementar dicas de ferramentas de balão
As dicas de ferramentas de balão são semelhantes às dicas de ferramentas padrão, mas são exibidas em um "balão" estilo desenho animado com uma haste apontando para a ferramenta. As dicas de ferramentas de balão podem ser de linha única ou multilinha. Eles são criados e manipulados da mesma maneira que as dicas de ferramentas padrão.
A posição padrão da haste e do retângulo é mostrada na ilustração a seguir. Se a ferramenta estiver muito perto da parte superior da tela, a dica de ferramenta aparecerá abaixo e à direita do retângulo da ferramenta. Se a ferramenta estiver muito perto do lado direito da tela, princípios semelhantes se aplicam, mas a dica de ferramenta aparece à esquerda do retângulo da ferramenta.
Você pode alterar o posicionamento padrão definindo o sinalizador TTF_CENTERTIP no membro uFlags da estrutura TOOLINFO da dica de ferramenta. Nesse caso, a haste normalmente aponta para o centro da borda inferior do retângulo da ferramenta, e o retângulo de texto é exibido diretamente abaixo da ferramenta. A haste se prende ao retângulo de texto no centro da borda superior. Se a ferramenta estiver muito próxima da parte inferior da tela, o retângulo de texto será centralizado acima da ferramenta e a haste será anexada ao centro da borda inferior.
A ilustração a seguir mostra uma dica de ferramenta centralizada na ferramenta.
Se você quiser especificar onde a haste aponta, defina o sinalizador TTF_TRACK no membro uFlags da estrutura TOOLINFO da dica de ferramenta. Em seguida, especifique a coordenada enviando uma mensagem TTM_TRACKPOSITION , com as coordenadas x e y no valor lParam . Se TTF_CENTERTIP também estiver definido, a haste ainda apontará para a posição especificada pela mensagem TTM_TRACKPOSITION.
O que você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Implementar dicas de ferramentas de balão
O código de exemplo a seguir mostra como implementar uma dica de ferramenta de balão centralizado usando o estilo de controle de dica de ferramenta TTS_BALLOON .
hwndToolTips = CreateWindow(TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_BALLOON,
0, 0, 0, 0, NULL, NULL, g_hinst, NULL);
if (hwndTooltip)
{
TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_CENTERTIP;
ti.hwnd = hwnd;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = LPSTR_TEXTCALLBACK;
GetClientRect(hwnd, &ti.rect);
SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );
}
Tópicos relacionados