| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Esteban Cdt

Registrado: 26 May 2003Mensajes: 22
|
Publicado: Vie 02 Jun, 2006 12:43 pm Asunto: Application->OnMenssage |
|
|
Hola builderos.
Tengo la siguiente duda.
Estoy haciendo una aplicación con un hilo que envia mensajes a un formulario.
En este formulario e implementado lo que viene en la ayuda de windows
que es :
en el constructor:
Application->OnMenssage = AppMessage;
En la implementación del metodo
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
//Tratamiento del mensaje que viene del thread
if(Msg.message == xxx){
Handled = true;
ShowMessage("cogido");
}
}
Funcionar funciona bien, pero lo que pasa que con cada mensaje que recibe este formulario se entra en la función AppMessage.
Mi pregunta es: ¿No se pueden "filtrar" los mensajes que recibe AppMessage para que solo se entre cuando reciba un mensaje deseado?
¿Hay algún otro método para realizar esto?
Saludos. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 03 Jun, 2006 6:31 pm Asunto: |
|
|
Existe otra manera, usando la VLC
para ello dentro del archivo h de tu proyecto puedes usar algo como esto
| Código: | // una funcion para tratar el mensaje que quieres
private:
void __fastcall MiFuncion(TWMSysCommand& Msg)
{
if ((Msg.CmdType & 0xFFF0) != SC_MOVE)
TForm::Dispatch(&Msg);
}
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SYSCOMMAND, TWMSysCommand,MiFuncion);
END_MESSAGE_MAP(TForm); |
de esta manera usas el mensaje de windows WM_SYSCOMMAND, que deriva de TWMSysCommand, y lo pasas a tu funcion "MiFuncion"
espero te resuelva el problema. _________________
 |
|
| Volver arriba |
|
 |
Esteban Cdt

Registrado: 26 May 2003Mensajes: 22
|
Publicado: Dom 04 Jun, 2006 2:39 pm Asunto: |
|
|
| OK Grácias, lo probaré. |
|
| Volver arriba |
|
 |
Esteban Cdt

Registrado: 26 May 2003Mensajes: 22
|
Publicado: Lun 05 Jun, 2006 8:26 am Asunto: |
|
|
| Grácias César, lo probé y funciona perfectamente. |
|
| Volver arriba |
|
 |
|