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
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