Partilhar via


Classe CDragListBox

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Para além de fornecer a funcionalidade de uma caixa de lista do Windows, a CDragListBox classe permite ao utilizador mover itens das caixas de lista, como nomes de ficheiros, dentro da caixa de lista.

Sintaxe

class CDragListBox : public CListBox

Membros

Construtores Públicos

Nome Description
CDragListBox::CDragListBox Constrói um CDragListBox objeto.

Métodos Públicos

Nome Description
CDragListBox::BeginDrag Chamado pela estrutura quando uma operação de arrasto começa.
CDragListBox::CancelarDrag Chamada pela estrutura quando uma operação de arrasto foi cancelada.
CDragListBox::D ragging Chamado pela estrutura durante uma operação de arrasto.
CDragListBox::D rawInsert Desenha o guia de inserção da caixa da lista de arrastar.
CDragListBox::D ropped Chamado pelo framework depois de o item ter sido descartado.
CDragListBox::ItemFromPt Devolve as coordenadas do item que está a ser arrastado.

Observações

As caixas de lista com esta funcionalidade permitem aos utilizadores encomendar os itens de uma lista da forma que lhes for mais útil. Por defeito, a caixa da lista vai mover o item para a nova localização na lista. No entanto, CDragListBox os objetos podem ser personalizados para copiar itens em vez de os mover.

O controlo da caixa de lista associado à CDragListBox classe não deve ter o estilo LBS_SORT ou LBS_MULTIPLESELECT. Para uma descrição dos estilos de caixas de lista, veja List-Box Estilos.

Para usar uma caixa de lista de arrastar numa caixa de diálogo existente da sua aplicação, adicione um controlo de caixa de lista ao seu modelo de diálogo usando o editor de diálogo e depois atribua uma variável membro (de Categoria Control e Tipo CDragListBoxde Variável) correspondente ao controlo da caixa de lista no seu modelo de diálogo.

Para mais informações sobre a atribuição de controlos a variáveis membro, veja Atalho para Definir Variáveis de Membro para Controlos de Diálogo.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

Requerimentos

Cabeçalho: afxcmn.h

CDragListBox::BeginDrag

É chamada pela framework quando ocorre um evento que pode iniciar uma operação de arrasto, como pressionar o botão esquerdo do rato.

virtual BOOL BeginDrag(CPoint pt);

Parâmetros

pt
Um objeto CPoint que contém as coordenadas do item a ser arrastado.

Valor de retorno

Não nulo se for permitido arrastar, caso contrário 0.

Observações

Anule esta função se quiser controlar o que acontece quando começa uma operação de arrasto. A implementação padrão captura o rato e mantém-se em modo de arrastar até o utilizador clicar no botão esquerdo ou direito do rato ou pressionar ESC, altura em que a operação de arrastar é cancelada.

CDragListBox::CancelarDrag

Chamada pela estrutura quando uma operação de arrasto foi cancelada.

virtual void CancelDrag(CPoint pt);

Parâmetros

pt
Um objeto CPoint que contém as coordenadas do item a ser arrastado.

Observações

Sobrescreve esta função para gerir qualquer processamento especial para o controlo da tua caixa de lista.

CDragListBox::CDragListBox

Constrói um CDragListBox objeto.

CDragListBox();

CDragListBox::D ragging

Chamada pelo framework quando um item da lista está a ser arrastado dentro do CDragListBox objeto.

virtual UINT Dragging(CPoint pt);

Parâmetros

pt
Um objeto CPoint que contém as coordenadas de ecrã x e y do cursor.

Valor de retorno

O ID do recurso do cursor a ser exibido. Os seguintes valores são possíveis:

  • DL_COPYCURSOR Indica que o item será copiado.

  • DL_MOVECURSOR Indica que o item será movido.

  • DL_STOPCURSOR Indica que o alvo atual de drop não é aceitável.

Observações

O comportamento padrão devolve DL_MOVECURSOR. Anule esta função se quiser fornecer funcionalidades adicionais.

CDragListBox::D rawInsert

Chamado pelo framework para desenhar o guia de inserção antes do item com o índice indicado.

virtual void DrawInsert(int nItem);

Parâmetros

nItem
Índice baseado em zero do ponto de inserção.

Observações

Um valor de - 1 elimina o guia de inserção. Substitua esta função para modificar a aparência ou o comportamento do guia de inserção.

CDragListBox::D ropped

Chamada pela framework quando um item é largado dentro de um CDragListBox objeto.

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

Parâmetros

nSrcIndex
Especifica o índice baseado em zero da sequência caída.

pt
Um objeto CPoint que contém as coordenadas do local de entrega.

Observações

O comportamento padrão copia o item da caixa de lista e os seus dados para a nova localização e depois apaga o item original. Substitua esta função para personalizar o comportamento predefinido, como permitir que cópias dos itens da caixa de lista sejam arrastadas para outros locais dentro da lista.

CDragListBox::ItemFromPt

Chame esta função para recuperar o índice em base zero do item da caixa de lista localizado em pt.

int ItemFromPt(
    CPoint pt,
    BOOL bAutoScroll = TRUE) const;

Parâmetros

pt
Um objeto CPoint contendo as coordenadas de um ponto dentro da caixa de lista.

bAutoScroll
Não zero se for permitido scrollar, caso contrário 0.

Valor de retorno

Índice base zero do item da lista de arrastar.

Consulte também

Exemplo MFC de TSTCON
Classe CListBox
Gráfico de Hierarquia
Classe CListBox