IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Shell au premier plan par rapport à application tierce


Sujet :

SWT/JFace Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 70
    Points : 57
    Points
    57
    Par défaut Shell au premier plan par rapport à application tierce
    Bonjour,

    Pour que ce soit plus clair, je vais donner un exemple de ce que je dois essayer de faire:
    Prenez un explorateur Windows et faites une copie d'un gros dossier. Normalement y'a la fenêtre de copie qui apparait avec une barre de progression. Cette fenêtre est au premier plan par rapport votre explorateur. Si maintenant j'ouvre une autre fenêtre (de n'importe quelle application), je ne vois plus la barre de progression. Si maintenant je repasse sur mon explorateur, la fenêtre de progression est toujours devant: elle n'est donc pas "always on top" mais elle reste au 1er plan par rapport à l'explorateur. Si je reste sur mon explorateur, la barre de progression est on top mais ne prend jamais le focus.

    L'idée est que je puisse faire ça avec shell sur une application tierce (donc pas l'application qui a créé le shell)
    Exemple: j'ai mon programme qui créé un shell (avec une barre de progression) et je souhaite être "on top" sur un autre programme (Word par exemple, que j'aurais désigné avec son PID)

    Je n'ai pas de problème pour trouver Word via son PID (via org.eclipse.swt.internal.win32.OS). Mon souci c'est la partie "on top".

    Actuellement j'ai fait un "listener" qui regarde toute les 2 secondes quelle est le pid de l'application au 1er plan dans Windows. Si c'est Word alors je fait un AttachThreadInput + SetForegroundWindow: mon shell passe bien devant.

    Le souci est que cette méthode prend le focus sur Word et donc toutes les 2 secondes mon shell passe devant et prend le focus.

    J'ai donc plusieurs question:
    - est-ce qu'il y a une autre méthode que celle que j'ai utilisé? (le setActive ne marche pas comme je le souhaite)
    - sinon comment faire pour que mon shell ne prenne pas le focus? (de la même manière que la barre de progression de copie de l'explorateur)

    Merci pour vos réponses

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2012
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 106
    Points : 63
    Points
    63
    Par défaut SWT.SYSTEM_MODAL
    salut,

    j'avais aussi un souci de fenêtre modale qui passait au second plan, car j'avais paramétré ma fenêtre en SWT.APPLICATION_MODAL et je l'ai changé en SWT.SYSTEM_MODAL.

    peut être que tu devrais chercher de se coté.

    cdt

Discussions similaires

  1. Mettre au premier-plan (par VBA)
    Par SansSucre dans le forum IHM
    Réponses: 6
    Dernier message: 27/01/2018, 10h15
  2. div parent au premier plan par rapport à ses fils?
    Par hamidap dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 27/03/2009, 16h05
  3. Réponses: 4
    Dernier message: 03/10/2008, 15h03
  4. Réponses: 8
    Dernier message: 19/06/2008, 21h54
  5. [VBA] Mettre au premier plan par VBA?
    Par Caroline1 dans le forum Access
    Réponses: 9
    Dernier message: 02/05/2006, 22h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo