Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Novato Al Volante De Mfc

Iniciado por _Grey, 23 de Diciembre de 2004, 04:32:39 PM

« anterior - próximo »

_Grey

 Estoy haciendo una pequeña aplicacion con MFC y tengo algun problema por mi falta de experiencia en ello, tengo un libro que me ayuda algo pero, tengo algun problema que parece que es facil ..... pero no doy con la solucion por que desconozco donde me muevo.

Primero una duda un poco general, tengo un EditBot para introducir valores en un ListBox.Cuando pulsaba return me cerraba la ventana de dialogo, e puesto un boton para introducir el valor y le he activado la propiedad defaultbutton, ahora cuando se pulsa return estando en el EditBox se llama a la funcion del boton de insertar valor.
Es la forma correcta de trabajar, o tendria que capturar "ese" return de otra forma??

El siguiente punto me extraña mas. Cuando señalo una opcion del ListBox y le doy a la tecla suprimir o de borrar, no elimina esa opcion, esperaba que fuera algo automatico, quiza e de capturar ese evento? como?

Por ultimo, es mejor asociar a estos elementos un objeto control o valor??? y por que??

Gracias por vuestro tiempo, saludos.

fiero

 Hola,

Por defecto un diálogo siempre resonde a dos pulsaciones, el ENTER y el ESC, enviando los mensajes IDOK y IDCANCEL respectivamente. Las funciones que manejan por defecto estos mensajes, OnOk() y OnCancel() respectivamente, hacen que el diálogo se cierre. Para evitarlo la mejor forma que he conseguido es sobreescribir esas funciones en tu clase derivada de CDialog y quitar las llamadas a la clase base. Puedes dejar esas funciones vacias o especificar el código que quieres que se ejecute al pulsar intro o escape, así:

en MiClaseDlg.h:

class CMiClaseDlg : public CDialog
{
   ...
   virtual void OnCancel();
   virtual void OnOK();
{

en MiClaseDlg.cpp:

void CMiClaseDlg::OnCancel()
{
}

void CMiClaseDlg::OnOK()
{
}


Lo de pulsar la tecla suprimir no lo he hecho nunca, ¿has mirado el mensaje LVN_KEYDOWN de la lista?

Lo de asignar variables al control de tipo valor o control, como lo veas más cómodo. Si vas a utilizar solamente el valor retornado por el control, igual es más cómodo utilizar una tipo valor, aunque recuerda que siempre necesitarás llamar a UpdateData(bool) para actualizar el valor en uno u otro sentido.
Si vas a hacer más cosas con el control, como ocultarlo y mostrarlo, cambiarle de tamaño o posición en tiempo de ejecución, etc, entonces es mejor usar una variable de tipo control y manejarlo con ella. Si vas a hacer todas estas cosas y no tienes una variable de tipo control, necesitarás llamar a GetDlgItem(int nID) para obtener un puntero al control cada vez.

un saludo
www.videopanoramas.com Videopanoramas 3D player

_Grey


[EX3]

 MFC, solo de recordar esas siglas me entran escalofrios, ke putas la pase en el curso cuando las toke, me hicieron odiar C++ a unos niveles increibles  (uoh)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

_Grey

 No hace falta que lo digas [EX3], las toco por que me a venido a cuento por el programita, pero me cuesta lo suyo ...... esta muy lejos de nuestros programillas a pantalla completa, pero me era necesario. :P

Saludotes.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.