| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
vizca321 Lt


Registrado: 06 May 2008Mensajes: 83Ubicación: Mexico
|
Publicado: Lun 08 Jun, 2009 7:37 am Asunto: Como evitar perdida de foco de aplicacion |
|
|
| Alguien me podria decir si puedo evitar que mi aplicacion pierda el foco o pase a segundo plano, por que otra aplicacion se a ejecutado |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mar 09 Jun, 2009 11:30 am Asunto: |
|
|
La forma mas simple de hacerlo es dar la propiedad FormStyle = fsStayOnTop y colocar un timer que devuelva el foco de esta manera:
| Código: | void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(GetFocus !=Handle){
SetFocus();
Application->Restore();
}
}
|
El tiempo del timer lo puedes ajustar a 100 ms.
Saludos. |
|
| Volver arriba |
|
 |
vizca321 Lt


Registrado: 06 May 2008Mensajes: 83Ubicación: Mexico
|
Publicado: Jue 11 Jun, 2009 10:34 pm Asunto: |
|
|
| escafandra escribió: | La forma mas simple de hacerlo es dar la propiedad FormStyle = fsStayOnTop y colocar un timer que devuelva el foco de esta manera:
| Código: | void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(GetFocus !=Handle){
SetFocus();
Application->Restore();
}
}
|
El tiempo del timer lo puedes ajustar a 100 ms.
Saludos. |
Gracias probe el codigo que me proporcionaste pero no dio el resultado que yo queria y agregue este que encontre dentro del foro y haciendo lo que digiste de cambiar el FormStyle = fsStayOnTop y listo
| Código: |
HWND FirstWnd;
FirstWnd = FindWindow(NULL, "RockProy");
if (FirstWnd!=NULL) {
ShowWindow(FirstWnd,SW_RESTORE);
SetForegroundWindow(FirstWnd);
}
|
|
|
| Volver arriba |
|
 |
|