Vous êtes sur la page 1sur 6

2.

LISTAS Y LISTAS DESPLEGABLES


2.1. La clase CListBox permite definir controles denominados listas. Una lista es una estructura que
nos permite almacenar un conjunto de elementos. Par crear una lista primero tenemos que construir
un objeto de la clase ClistBox o de una clase derivada y posteriormente llamar a la función create.
Después de crear una lista el siguiente paso es colocar cadenas de texto dentro de ella. Esto se
hace utilizando la función miembro AddString o bien la función insertString. Además tenemos las
siguientes funciones miembro:
 GetCount … .Cantidad de elementos de la lista.
 SetCurSel o SelectString .. .Selecciona un elemento de la lista.
 GetCurSel ……Devuelve índice del elemento seleccionado
 GetText …....Copia un elemento de la lista en un buffer
 DeleteString …..Borra un elemento de la lista.
 GetTopIndex, SetTopIndex, GetItemData, SetItemData, GetSel,
 SetSel,GetSelCount, GetSelItems, SelItemRange,
 ResetContent, Dir, FindString, FindStringExact
APLICACIONES.
Desarrolle la siguiente interfaz con una aplicación basada en el dialogo:

La declaración de variables será;


La programación de los botones será:
void Cproy111Dlg::OnBnClickedButton1()
{CString mensaje1, mensaje2;
mensaje1="Imgrese un nombre y tambien un codigo";
mensaje2 = "Error...";
UpdateData(true);
if((m_name!="")&&(m_code!=""))
{ m_lista_code.AddString(m_code);
m_lista_name.AddString(m_name);
m_name = "";
m_code ="";
UpdateData(false);
GetDlgItem(IDC_EDIT1)->SetFocus(); }
else
MessageBox(mensaje1, mensaje2, MB_OK | MB_ICONSTOP);
}
void Cproy111Dlg::OnBnClickedButton2()
{ CString mensaje1,mensaje2;
mensaje1="Seleccione un CODIGO...";
mensaje2 ="Error...";
if (m_lista_code.GetCurSel()>=0)
{ int i=m_lista_code.GetCurSel();
m_lista_code.DeleteString(i);
m_lista_name.DeleteString(i);}
else
MessageBox(mensaje1,mensaje2, MB_OK | MB_ICONSTOP); }

void Clistas2Dlg::OnBnClickedButton3()
{PostQuitMessage(0);}

2.2. Listas
Crear una ventana basada en el dialogo. Deberá guardar esta aplicación con el
nombre App12.
Ubique los controles indicados:
 2 cuadros de lista
 4 botones de comando
Control Propiedades Valor
IDD_APP10_DIALOG Caption Cuadros de lista
IDC_LIST1 ID IDC_LISTBOX1
Sort False
IDC_LIST2 ID IDC_LISTBOX2
Sort False
IDC_BUTTON1 ID IDC_AGREGAR
Caption >
IDC_BUTTON2 ID IDC_AGREGARTODO
Caption >>
IDC_BUTTON3 ID IDC_QUITAR
Caption <
IDC_BUTTON4 ID IDC_QUITARTODO
Caption <<
Declaración de Variables
Ahora llenaremos el primer listbox con un cierto número de elementos, en este caso
números del 1 al 100. Para esto modificaremos el evento OnInitDialog( ) de la clase
CApp12Dlg como sigue:
BOOL CApp12Dlg:: OnInitDialog()
{CDialog::OnInitDialog();
SetIcon(m_hIcon,TRUE);
SetIcon(m_hIcon,FALSE);

char numero[5];
CString cadena;
for(int i=1; i<=100; i++)

{itoa(i, numero,10);
cadena=numero;
m_lista1.AddString(cadena);}

return TRUE;}
void Cproy211Dlg::OnBnClickedButton1()
{ CString cadena1,cadena2;
cadena1="No ha seleccionado ningun elemento";
cadena2 = "Error";
if (m_lista1.GetCurSel() >=0)
{ CString valor;
m_lista1.GetText(m_lista1.GetCurSel(),valor);
m_lista2.AddString(valor);
m_lista1.DeleteString(m_lista1.GetCurSel());}
else
MessageBox( cadena1, cadena2, MB_OK | MB_ICONSTOP);
}

void Cproy211Dlg::OnBnClickedButton2()
{while(m_lista1.GetCount() > 0)
{ CString valor;
m_lista1.SetCurSel(0);
m_lista1.GetText(0,valor);
m_lista2.AddString(valor);
m_lista1.DeleteString(0); }

Vous aimerez peut-être aussi