Admin Fondateur
Nombre de messages : 197 Age : 40 Localisation : Tlemcen ( Algérie ) Date d'inscription : 04/12/2006
| Sujet: Comment remettre son application en avant plan ? Ven 12 Jan - 6:20 | |
| Comment remettre son application en avant plan ? La fonction SetForeGroundWindow permet de mettre une fiche en avant-plan directement. Mais depuis Windows 98 et Windows 2000 elle ne place plus la fenêtre en avant-plan mais se contente de la faire clignoter dans la barre des tâches. Windows limite la possibilité de passer la fenêtre en avant-plan. Tant que l'application n'est pas elle-même en avant-plan, il n'est pas possible de mettre une fenêtre en avant-plan, ce qui en limite beaucoup l'intérêt. La solution proposée par la MSDN est de changer la base de registre afin de supprimer cette limitation. Ce n'est pas la meilleure méthode à mon avis. Une autre méthode est d'attacher très provisoirement l'application au processus actuellement en avant-plan. Ainsi, Windows va croire que notre application est en avant-plan et autoriser d'y mettre la fenêtre. Ceci peut se faire en quelques lignes : - Code:
-
procedure TForm1.Devant; Var Proc,Nous:Integer; begin Proc:=GetWindowThreadProcessId(GetForeGroundWindow); Nous:=GetCurrentThreadID; If Proc<>Nous Then Begin // Nous ne sommes pas l'application en premier plan AttachThreadInput(Nous,Proc,True); SetForeGroundWindow(Handle); AttachThreadInput(Nous,Proc,False); Application.BringToFront; End Else Begin // Nous sommes déjà en premier plan SetForeGroundWindow(Handle); End; end; | |
|