Ver Mensaje Individual
  #8  
Antiguo 17-06-2005
gryphus gryphus is offline
Miembro
 
Registrado: abr 2005
Posts: 40
Reputación: 0
gryphus Va por buen camino
No se si no encontráis una solución para mi problema... yo he ido probando cosas pero no hay manera... he echo alguna prueba como esto...
El mayor problema es que necesito que el foco se mantenga en la pantalla en la que quiero escribir los numero y cuando aprieto un boton en mi aplicació el foco pasa cambia a mi aplicación. Supongo que la solución sería encontrar la manera de que el foco se mantenga en el mismo sitio sin pasar al programa.

Me han dicho que se puede desactivar que el foco se vaya al programa usando WS_EX_NOACTIVATE pero solo funciona en WinXP y yo uso 2000, y mis clientes también...

Uso WM_KEYDOWN para enviar el mensaje... esta es la linia de código que uso...

Código:
 
PostMessage(edit1.Handle, WM_KEYDOWN, 51, 0);
Esto se lo pongo en el momento de hacer click en un boton. Al poner "edit1.handle", en el momento de presionar el boton, me envia el valor 51 (representa el número 3) y se visualiza en la caja de texto...

Luego he probado lo siguiente:

Código:
 

PostMessage(FindWindow(Nil, Pchar('Caption dl programa')), WM_close, 0, 0);
Esto busca una ventana de windows que tenga en el caption el nombre que le haya puesto entre comillas ' ', con WM_CLOSE lo cierra... y funciona. Entonces, x logica, e probado haciendo esto...
Código:
 

PostMessage(FindWindow(Nil, Pchar('Caption dl programa')), WM_KEYDOWN, 51, 0);
Así en teoria (yo pensava) debería enviar el valor 51 (número 3) a la ventana con el caption y enviarle el dato... no funciona
Con esto... alguien tiene alguna idea de como seguir?

Gracias otra vez...
Responder Con Cita