Compartilhar via


Edição do rótulo de controle de árvore

O usuário pode editar diretamente os rótulos de itens em um controle de árvore (CTreeCtrl) que tem o estilo TVS_EDITLABELS . O usuário começa a editar clicando no rótulo do item que tem o foco. Um aplicativo começa a edição usando a função de membro EditLabel . O controle de árvore envia a notificação quando a edição começa e quando ela é cancelada ou concluída. Quando a edição é concluída, você é responsável por atualizar o rótulo do item, se apropriado.

Quando a edição de rótulos começa, um controle de árvore envia uma mensagem de notificação TVN_BEGINLABELEDIT. Ao processar essa notificação, você pode permitir a edição de alguns rótulos e impedir a edição de outros. Retornar 0 permite edição e retornar sem zero o impede.

Quando a edição de rótulos é cancelada ou concluída, um controle de árvore envia uma mensagem de notificação TVN_ENDLABELEDIT. O parâmetro lParam é o endereço de uma estrutura NMTVDISPINFO . O membro do item é uma estrutura TVITEM que identifica o item e inclui o texto editado. Você é responsável por atualizar o rótulo do item, se apropriado, talvez depois de validar a cadeia de caracteres editada. O membro pszText de TV_ITEM é 0 se a edição for cancelada.

Durante a edição de rótulos, normalmente em resposta à mensagem de notificação TVN_BEGINLABELEDIT, você pode obter um ponteiro para o controle de edição usado para edição de rótulo usando a função membro GetEditControl. Você pode chamar a função de membro SetLimitText do controle de edição para limitar a quantidade de texto que um usuário pode inserir ou subclasse o controle de edição para interceptar e descartar caracteres inválidos. No entanto, observe que o controle de edição é exibido somente após o envio de TVN_BEGINLABELEDIT.

Consulte também

Usando CTreeCtrl
Controles