Classe CDragListBox

Além de fornecer a funcionalidade de uma caixa de listagem do Windows, a classe CDragListBox permite que o usuário mova itens da caixa de listagem, como nomes de arquivo, dentro da própria caixa de listagem.

Sintaxe

class CDragListBox : public CListBox

Membros

Construtores públicos

Nome Descrição
CDragListBox::CDragListBox Constrói um objeto CDragListBox.

Métodos públicos

Nome Descrição
CDragListBox::BeginDrag Chamado pela estrutura quando uma operação de arrastar for iniciada.
CDragListBox::CancelDrag Chamado pela estrutura quando uma operação de arrastar foi cancelada.
CDragListBox::Dragging Chamado pela estrutura durante uma operação de arrastar.
CDragListBox::DrawInsert Desenha o guia de inserção da caixa de listagem de arrastar.
CDragListBox::Dropped Chamado pela estrutura após o item ter sido solto.
CDragListBox::ItemFromPt Retorna as coordenadas do item que está sendo arrastado.

Comentários

As caixas de listagem com essa funcionalidade permitem que os usuários ordenem os itens em uma lista de qualquer maneira que seja mais útil para eles. Por padrão, a caixa de listagem moverá o item para o novo local na lista. No entanto, os objetos CDragListBox podem ser personalizados para copiar os itens em vez de movê-los.

O controle de caixa de listagem associado à classe CDragListBox não deve ter o estilo LBS_SORT ou LBS_MULTIPLESELECT. Para obter uma descrição dos estilos de caixa de listagem, consulte Estilos de caixa de listagem.

Para usar uma caixa de listagem de arrastar em uma caixa de diálogo existente de seu aplicativo, adicione um controle de caixa de listagem ao modelo de caixa de diálogo usando o editor de caixa de diálogo e atribua uma variável de membro (de Categoria Control e Tipo de Variável CDragListBox) correspondente ao controle de caixa de listagem em seu modelo de caixa de diálogo.

Para obter mais informações sobre como atribuir controles a variáveis de membro, consulte Atalho para definir variáveis de membro para controles de caixa de diálogo.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

Requisitos

Cabeçalho: afxcmn.h

CDragListBox::BeginDrag

Chamado pela estrutura quando ocorre um evento que pode iniciar uma operação de arrastar, como pressionar o botão esquerdo do mouse.

virtual BOOL BeginDrag(CPoint pt);

Parâmetros

pt
Um objeto CPoint que contém as coordenadas do item que está sendo arrastado.

Valor de retorno

Diferente de zero se for permitido arrastar; caso contrário, 0.

Comentários

Substitua essa função se você quiser controlar o que acontece quando começa uma operação de arrastar. A implementação padrão captura o mouse e permanece no modo de arrastar até que o usuário clique no botão esquerdo ou direito do mouse ou pressione ESC, momento em que a operação de arrastar é cancelada.

CDragListBox::CancelDrag

Chamado pela estrutura quando uma operação de arrastar foi cancelada.

virtual void CancelDrag(CPoint pt);

Parâmetros

pt
Um objeto CPoint que contém as coordenadas do item que está sendo arrastado.

Comentários

Substitua essa função para manipular qualquer processamento especial para o controle de caixa de listagem.

CDragListBox::CDragListBox

Constrói um objeto CDragListBox.

CDragListBox();

CDragListBox::Dragging

Chamado pela estrutura quando um item de caixa de listagem está sendo arrastado para dentro do objeto CDragListBox.

virtual UINT Dragging(CPoint pt);

Parâmetros

pt
Um objeto CPoint que contém as coordenadas de tela x e y da posição do cursor.

Valor de retorno

A 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 destino atual onde o item será solto não é aceitável.

Comentários

O comportamento padrão retorna DL_MOVECURSOR. Substitua essa função se você quiser fornecer funcionalidade adicional.

CDragListBox::DrawInsert

Chamado pela estrutura 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.

Comentários

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

CDragListBox::Dropped

Chamado pela estrutura quando um item é solto dentro de um objeto CDragListBox.

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

Parâmetros

nSrcIndex
Especifica o índice baseado em zero da cadeia de caracteres solta.

pt
Um objeto CPoint que contém as coordenadas do local onde será solto.

Comentários

O comportamento padrão copia o item da caixa de listagem e seus dados para o novo local e exclui o item original. Substitua essa função para personalizar o comportamento padrão, como habilitar cópias de itens da caixa de listagem a serem arrastados para outros locais dentro da lista.

CDragListBox::ItemFromPt

Chame essa função para recuperar o índice baseado em zero do item da caixa de listagem localizado no pt.

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

Parâmetros

pt
Um objeto CPoint que contém as coordenadas de um ponto dentro da caixa de listagem.

bAutoScroll
Diferente de zero se a rolagem for permitida; caso contrário, 0.

Valor de retorno

Índice baseado em zero do item da caixa de listagem de arrastar.

Confira também

TSTCON de exemplo do MFC
Classe CListBox
Gráfico da hierarquia
Classe CListBox