Clase CDragListBox

Además de proporcionar la funcionalidad de un cuadro de lista de Windows, la clase CDragListBox permite al usuario mover elementos del cuadro de lista, tales como nombres de archivo, dentro del cuadro de lista.

Sintaxis

class CDragListBox : public CListBox

Miembros

Constructores públicos

Nombre Descripción
CDragListBox::CDragListBox Construye un objeto CDragListBox.

Métodos públicos

Nombre Descripción
CDragListBox::BeginDrag Lo llama el marco cuando se inicia una operación de arrastre.
CDragListBox::CancelDrag Lo llama el marco cuando una operación de arrastre se cancela.
CDragListBox::Dragging Lo llama el marco durante una operación de arrastre.
CDragListBox::DrawInsert Dibuja la guía de inserción del cuadro de la lista para arrastrar.
CDragListBox::Dropped Lo llama el marco después de colocar el elemento.
CDragListBox::ItemFromPt Devuelve las coordenadas del elemento que se está arrastrando.

Comentarios

Los cuadros de lista con esta capacidad permiten a los usuarios ordenar los elementos de una lista de la manera que les sea más útil. De forma predeterminada, el cuadro de lista moverá el elemento a la nueva ubicación en la lista. Sin embargo, los objetos CDragListBox se pueden personalizar para copiar elementos en lugar de moverlos.

El control de cuadro de lista asociado con la clase CDragListBox no debe tener el estilo LBS_SORT ni LBS_MULTIPLESELECT. Para obtener una descripción de los estilos de cuadro de lista, consulte Estilos de cuadro de lista.

Para usar un cuadro de lista por arrastrar en un cuadro de diálogo existente de su aplicación, agregue un control de cuadro de lista a la plantilla de diálogo mediante el editor de diálogos y, a continuación, asigne una variable miembro (de categoría Control y tipo de variable CDragListBox) correspondiente al control de cuadro de lista en su plantilla de diálogo.

Para obtener más información sobre cómo asignar controles a variables miembro, consulte Acceso directo a la definición de variables miembro para controles de cuadro de diálogo.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

Requisitos

Encabezado: afxcmn.h

CDragListBox::BeginDrag

Lo llama el marco cuando se produce un evento que podría iniciar una operación de arrastre, como presionar el botón izquierdo del mouse.

virtual BOOL BeginDrag(CPoint pt);

Parámetros

pt
Un objeto CPoint que contiene las coordenadas del elemento que se está arrastrando.

Valor devuelto

Distinto de cero si se permite arrastrar, en caso contrario, 0.

Comentarios

Invalide esta función si desea controlar lo que sucede cuando comienza una operación de arrastre. La implementación predeterminada captura el mouse y permanece en modo de arrastre hasta que el usuario hace clic con el botón izquierdo o derecho del mouse o presiona ESC, en cuyo momento se cancela la operación de arrastre.

CDragListBox::CancelDrag

Lo llama el marco cuando una operación de arrastre se cancela.

virtual void CancelDrag(CPoint pt);

Parámetros

pt
Un objeto CPoint que contiene las coordenadas del elemento que se está arrastrando.

Comentarios

Invalide esta función para controlar cualquier procesamiento especial de su control de cuadro de lista.

CDragListBox::CDragListBox

Construye un objeto CDragListBox.

CDragListBox();

CDragListBox::Dragging

Lo llama el marco cuando se arrastra un elemento del cuadro de lista dentro del objeto CDragListBox.

virtual UINT Dragging(CPoint pt);

Parámetros

pt
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y del cursor.

Valor devuelto

El id. de recurso del cursor que se mostrará. Los siguientes valores posibles son posibles:

  • DL_COPYCURSOR Indica que se copiará el elemento.

  • DL_MOVECURSOR Indica que se moverá el elemento.

  • DL_STOPCURSOR Indica que el destino de colocación actual no es aceptable.

Comentarios

El comportamiento predeterminado devuelve DL_MOVECURSOR. Invalide esta función si desea proporcionar funcionalidad adicional.

CDragListBox::DrawInsert

Lo llama el marco para dibujar la guía de inserción antes del elemento con el índice indicado.

virtual void DrawInsert(int nItem);

Parámetros

nItem
Índice de base cero del punto de inserción.

Comentarios

Un valor de - 1 borra la guía de inserción. Invalide esta función para modificar la apariencia o el comportamiento de la guía de inserción.

CDragListBox::Dropped

Lo llama el marco cuando un elemento se quita dentro de un objeto CDragListBox.

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

Parámetros

nSrcIndex
Especifica el índice de base cero de la cadena colocada.

pt
Un objeto CPoint que contiene las coordenadas del sitio de colocación.

Comentarios

El comportamiento predeterminado copia el elemento del cuadro de lista y sus datos en la nueva ubicación y, a continuación, elimina el elemento original. Invalide esta función para personalizar el comportamiento predeterminado, como permitir que se arrastren copias de elementos del cuadro de lista a otras ubicaciones de la lista.

CDragListBox::ItemFromPt

Llame a esta función para recuperar el índice de base cero del elemento del cuadro de lista ubicado en pt.

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

Parámetros

pt
Un objeto CPoint que contiene las coordenadas de un punto dentro del cuadro de lista.

bAutoScroll
Distinto de cero si se permite el desplazamiento; de lo contrario, 0.

Valor devuelto

Índice de base cero del elemento del cuadro de lista por arrastrar.

Consulte también

MFC Sample TSTCON
CListBox (clase)
Gráfico de jerarquías
CListBox (clase)