Como implementar dicas de ferramentas multilinha
As dicas de ferramentas de várias linhas permitem que o texto seja exibido em mais de uma linha.
Eles são suportados pela versão 4.70 e posterior dos controles comuns. Seu aplicativo cria uma dica de ferramenta de várias linhas enviando uma mensagem TTM_SETMAXTIPWIDTH , especificando a largura do retângulo de exibição. O texto que excede essa largura é quebrado para a próxima linha em vez de ampliar a região de exibição. A altura do retângulo é aumentada conforme necessário para acomodar as linhas adicionais. O controle de dica de ferramenta quebra as linhas automaticamente ou você pode usar uma combinação de retorno de carro/alimentação de linha, \r\n, para forçar quebras de linha em locais específicos.
A exibição resultante é mostrada na ilustração a seguir.
Observação
O buffer de texto especificado pelo membro szText da estrutura NMTTDISPINFO pode acomodar apenas 80 caracteres. Se você precisar usar uma cadeia de caracteres mais longa, aponte o membro lpszText do NMTTDISPINFO para um buffer contendo o texto desejado.
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 multilinha
O fragmento de código a seguir é um exemplo de um manipulador de notificação de TTN_GETDISPINFO simples. Ele habilita uma dica de ferramenta de várias linhas, definindo o retângulo de exibição para 150 pixels. Uma quebra de linha manual é inserida após a primeira palavra para mostrar que as quebras de linha podem ser duras e suaves.
case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case TTN_GETDISPINFO:
LPNMTTDISPINFO pInfo = (LPNMTTDISPINFO)lParam;
SendMessage(pInfo->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 150);
wcscpy_s(pInfo->szText, ARRAYSIZE(pInfo->szText),
L"This\nis a very long text string " \
L"that must be broken into several lines.");
break;
}
break;
}
Tópicos relacionados