Pergunta

Eu quero ter CListCtrl.EditLabel () para qualquer coluna da lista. Como posso implementar esse recurso?

Foi útil?

Solução

Esta é factível, mas exige um pouco de recheio ao redor com cliques de mouse e eventos de foco.

Em poucas palavras você prender o botão esquerdo do mouse pressionado mensagem e convertê-lo em uma célula bateu detalhes (isto é, uma linha e índice de coluna).

Com esses detalhes celulares que você não pode determinar o tamanho e localização da célula de exibição de lista e também o valor de texto que ele contém.

Agora crie um controle CEdit diretamente sobre essa célula usando tamanho e localização detalhes da etapa anterior e dar-lhe o valor de texto da célula.

O passo final é lidar com o foco e teclado introduzir eventos para o CEdit para que os detalhes do texto do CEdit pode ser colocado de volta para dentro da célula de exibição de lista.

Ele faz ter uma boa quantidade de codificação, mas quando bem feito ela não funciona bem como uma alternativa para um controle de grade.

Outras dicas

Não tente com CListCtrl.

Use a MFC Grid Control. Nós implantá-lo em um aplicativo off-the-shelf com sucesso. Oferece edição no local, checkbox, rotação, etc para todas as células, bem como cabeçalhos de colunas e linhas, auto-size, de expansão automática, cores, arrastar-soltar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top