Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


RadioButtons tratados de manera conjunta

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

RadioButtons tratados de manera conjunta

Notapor gonso el Sab Dic 16, 2006 6:25 am

Hola, tengo la siguiente duda....

Tengo un grupo de RadioButtons en modo "pushlike"...(pueden llegar a ser hasta 40, en función de lo que seleccione el usuario), el usuario al pinchar sobre cualquiera de ellos desencadena una función; la pregunta es ¿Puedo reconocer que se ha pinchado sobre uno de ellos sin tener que generar la función OnClick para todos y cada uno de ellos? En Visual Basic para aplicaciones existe esta opción pero no se si existe en Visual C++. (He visto en un post de respuesta de LatinDeveloper que agrupaba los Onclick de los radio buttons en una sóla función pero tiene que establecer los mensajes Onclick para cada uno de ellos, esto es lo que me gustaría evitar)

Lo que quiero conseguir es algo así como "al pinchar dentro del group box coge el valor que tiene ahora el grupo y ejecuta la función atendiendo a ese valor" ¿Es posible?

Gracias de antemano y siento lo "engorroso" de la explicación.
gonso
Usuario Activo
Usuario Activo
 
Mensajes: 26
Registrado: Dom Nov 05, 2006 4:00 am

Re: RadioButtons tratados de manera conjunta

Notapor latindeveloper el Sab Dic 16, 2006 3:54 pm

Hola gonso,

Si es posible, lo que tienes que hacer es reemplazar las entradas del BN_CLICKED para cada boton (handlers) por un unico ON_CONTROL_RANGE:

Código: Seleccionar todo
ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON99, OnClickBotones)


Pero tienes que asegurarte que los numeros de ID de IDC_BUTTON1 asta IDC_BUTTON99 sean cosecutivos y no se interfiera ningun valor en medio. (como el de un edit por ejemplo)

Para saber que boton se ha presionado puedes utilizar la variable de la funcion OnClickBotones.

Esa funcion tiene la siguiente estructura:

Código: Seleccionar todo
virtual void OnClickBotones(UINT nID);

void CtuClase::OnClickBotones(UINT nID)
{
   if(nID == IDC_BUTTON1)
   {
       MessageBox("Horror!");
   }
}



Un ejemplo:
http://www.codeguru.com/Cpp/W-D/dislog/ ... php/c1899/
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru

Re: RadioButtons tratados de manera conjunta

Notapor gonso el Sab Dic 16, 2006 10:21 pm

Muchísimas gracias por la respuesta, me es de gran utilidad.
gonso
Usuario Activo
Usuario Activo
 
Mensajes: 26
Registrado: Dom Nov 05, 2006 4:00 am


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados