Simular la pulsación de un botón

24/10/2003 - 15:01 por jose | Informe spam
Hola,

Estoy realizando una aplicación con MFC's y me ha surgido el siguiete
problema:

Tengo un control (CMiControl) que contiene un checbox (por ejemplo).
Quiero que cuando se pulse el checkbox de CMiControl (u otra interación)
mi control envíe el mensaje BN_CLICKED (como si se hubira pulsado un
botón), para que así el diálogo que contiene a CMiControl pueda procesar
el mensaje.

Así he creado la función

void CMiControl::LanzarClick()
{
GetOwner()->PostMessage(BN_CLICKED, (WPARAM)GetDlgCtrlID(), (LPARAM)
this->m_hWnd);
}

Y la llamo, en este ejemplo cuando se pulsa el checkbox (podría ser en
otro evento).

El caso es que el diálogo que contiene CMiControl nunca recibe el mensaje
BN_CLICKED.

¿Alguna idea de dónde puede estar el fallo?

Muchas gracias y un saludo,

Jose

Preguntas similare

Leer las respuestas

#1 KAKATUO
24/10/2003 - 16:44 | Informe spam
Prueba con:

void CMiControl::LanzarClick()
{
WORD wNotifyCode = BN_CLICKED;
WORD wID = GetDlgCtrlID();
DWORD wParam = MAKELPARAM(wID, wNotifyCode);
DWORD lParam = this->GetSafeHwnd();

GetOwner()->PostMessage(WM_COMMAND, wParam, lParam);
}

Saludos.

"jose" escribió en el mensaje
news:
Mostrar la cita
#2 Ricardo Passians
25/10/2003 - 13:50 | Informe spam
Gracias, yo tambien buscaba algo asi.


"KAKATUO" wrote in message
news:bnbds9$5ia$04$
Mostrar la cita
mensaje
Mostrar la cita
#3 jose
28/10/2003 - 10:34 | Informe spam
Funciona perfectamente.

Una ligerísima correción :

Mostrar la cita
DWORD lParam = (LPARAM)this->GetSafeHwnd();


Muchas gracias,

Jose

"KAKATUO" wrote in
news:bnbds9$5ia$04$:

Mostrar la cita
Ads by Google
Search Busqueda sugerida