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

C++Builder Discussion :

Ne pas donner le focus à la fenêtre [BCB5]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut Ne pas donner le focus à la fenêtre [BCB5]
    Bonjour,

    Voila mon probleme, je fait tourner une application avec ce paramètre
    Application->ShowMainForm = false;
    La seule indication visible étant une icone dans la bare des taches
    TNotifyIconData provenant de ShellAPI
    L'application se connecte via un socket à un serveur, le but est d'afficher une fenêtre de notification (Fnotif) dès qu'un certain message est reçu

    le probleme est que quand je fait
    Fnotif->Show(); la fenêtre de notification a le focus
    hors moi je voudrait que le programme ayant le focus le conserve
    Comment dois-je procéder ?

    information complémentaires
    j'ai utilisé
    Fnotif->FormStyle = fsStayOnTop
    afin que la notification apparaisse au dessus des autres fenêtres

    j'ai essayé
    ShowWindow avec les paramètres SW_SHOWNA ou SW_SHOWNOACTIVATE
    mais j'ai eu du mal a retrouver le Handle de Fnotif

    Tant que je ne clic pas sur aucun bouton de mon application la fenêtre de notification n'a pas le focus à l'affichage

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Suggestion:
    Avant d'ouvrir ta fenêtre tu pourrais prendre le handle de la fenêtre qui a le focus et lui redonné par la suite!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    Merci, bonne sugsestion,

    comment puis-je récupérer l'information "handle de fenêtre du programme qui a le focus"

    et Comment la lui donner?
    Via SendMessage() ?

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Tu utilise la fonction GetForegroundWindow() qui retourne le Handle de l'application qui détient le focus.
    Pour redonner le focus à cette application, tu utilises la fonction SetForegroundWindow();

    Ca donne en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HWND HandleApplication;
    HandleApplication = GetForegroundWindow();
    Fnotif->Show();
    SetForegroundWindow(HandleApplication);
    Voilà, tient nous au courant

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    Bonjour et merci beaucoup j'ai en effet résolu mon problème avec ce code

  6. #6
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Citation Envoyé par jupman
    j'ai essayé
    ShowWindow avec les paramètres SW_SHOWNA ou SW_SHOWNOACTIVATE
    mais j'ai eu du mal a retrouver le Handle de Fnotif
    Et
    ?



    Espérant t'aider.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    Le probleme est que Handle est private et le je suis "en dehors" mais les fonctions "Foreground" m'ont permis de régler le probleme

    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Donner focus / Activer fenêtre logiciel externe
    Par starnours dans le forum Général Java
    Réponses: 3
    Dernier message: 05/09/2011, 08h17
  2. Donner le focus à une fenêtre non java
    Par Khyinn dans le forum Général Java
    Réponses: 2
    Dernier message: 15/05/2010, 12h40
  3. Réponses: 4
    Dernier message: 19/06/2007, 10h02
  4. Réponses: 4
    Dernier message: 05/09/2005, 16h01
  5. Réponses: 3
    Dernier message: 22/08/2005, 17h15

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