Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As dicas de ferramentas embutidas são usadas para exibir textos para objetos que foram truncados. Para obter uma ilustração, consulte Sobre controles de dica de ferramenta.
A diferença entre dicas comuns e dicas no local é o posicionamento. Por padrão, quando o ponteiro do mouse passa sobre uma região que tem uma dica de ferramenta associada a ela, a dica de ferramenta é exibida ao lado da região. No entanto, as dicas de ferramentas são janelas e podem ser posicionadas em qualquer lugar que você escolher, chamando SetWindowPos. Criar uma tooltip local é uma questão de posicionar a janela da tooltip para que ela sobreponha o texto.
O que precisa de saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Posicionando uma dica de ferramenta In-Place
Você precisa acompanhar três retângulos ao posicionar uma dica de ferramenta no local.
- O retângulo que envolve o texto completo do rótulo.
- O retângulo que envolve o texto da dica de ferramenta. O texto da tooltip é idêntico ao texto completo do rótulo e, normalmente, tem o mesmo tamanho e fonte. Assim, os dois retângulos de texto terão normalmente o mesmo tamanho.
- O retângulo da janela da dica de ferramenta. Esse retângulo é um pouco maior do que o retângulo de texto da dica de ferramenta que ele inclui.
Os três retângulos são mostrados esquematicamente na ilustração a seguir. A parte oculta do texto do rótulo é indicada por um fundo cinza.
Para criar uma dica de ferramenta local, deve-se posicionar o retângulo de texto da dica de ferramenta para que ele sobreponha o retângulo de texto do rótulo. O procedimento para alinhar os dois retângulos é relativamente simples:
- Defina o retângulo de texto do rótulo.
- Posicione a janela de sugestão de modo que o retângulo de texto da sugestão sobreponha o retângulo de texto do rótulo.
Na prática, geralmente é suficiente alinhar o canto superior esquerdo dos dois retângulos de texto. A tentativa de redimensionar o retângulo de texto da dica de ferramenta para coincidir exatamente com o retângulo de texto do rótulo pode levar a problemas na exibição da dica de ferramenta.
O problema com esse esquema simples é que você não pode posicionar o retângulo de texto da dica de ferramenta diretamente. Em vez disso, deve posicionar o retângulo da janela da tooltip suficientemente acima e à esquerda do retângulo de texto do rótulo para que os cantos dos dois retângulos de texto coincidam. Em outras palavras, você precisa saber o deslocamento entre o retângulo da janela da dica de ferramenta e seu retângulo de texto incluído. Em geral, não há uma maneira simples de determinar essa compensação.
Implementar In-Place dicas de ferramentas
O fragmento de código a seguir ilustra como usar uma mensagem TTM_ADJUSTRECT em um manipulador TTN_SHOW para mostrar uma dica de ferramenta no local. Seu aplicativo indica que o texto do rótulo está truncado definindo a variável private fMyStringIsTruncated como TRUE. O manipulador chama uma função definida pelo aplicativo, GetMyItemRect, para recuperar o retângulo de texto do rótulo. Esse retângulo é passado para o controle de dica de ferramenta com TTM_ADJUSTRECT, que retorna o retângulo da janela correspondente. SetWindowPos é então chamada para posicionar a dica de ferramenta sobre o rótulo.
case TTN_SHOW:
if (fMyStringIsTruncated)
{
RECT rc;
GetMyItemRect(&rc);
SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
SetWindowPos(hwndToolTip, NULL, rc.left, rc.top, 0, 0,
SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
}
Este exemplo não altera o tamanho da dica de ferramenta, apenas sua posição. Os dois retângulos de texto estão alinhados nos cantos superiores esquerdos, mas não necessariamente com as mesmas dimensões. Na prática, a diferença é geralmente pequena, e esta abordagem é recomendada para a maioria dos propósitos. Embora seja possível, em princípio, usar SetWindowPos para redimensionar e reposicionar a dica de ferramenta, fazê-lo pode ter consequências imprevisíveis.
Comentários
Controles comuns versão 5.80 simplifica o uso de dicas de ferramentas incorporadas pela adição de uma nova mensagem, TTM_ADJUSTRECT. Envie esta mensagem com as coordenadas do retângulo de texto do rótulo que você deseja que a dica de ferramenta sobreponha e ele retorna as coordenadas de um retângulo de janela de dica de ferramenta posicionado adequadamente.
Tópicos relacionados