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

Composants VCL Delphi Discussion :

Dessiner sur la barre de titre d'une autre application


Sujet :

Composants VCL Delphi

  1. #1
    Membre actif Avatar de petitprince
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2006
    Messages : 322
    Points : 267
    Points
    267
    Par défaut Dessiner sur la barre de titre d'une autre application
    Voilà je souhaite dessiner sur la barre de titre d'une autre application. Tout marche bien mais lorsque je ferme cette application (la calculatrice en l'occurence...), mon dessin qui était sur sa barre de titre, se retrouve sur la barre de titre de la fenêtre en arrière plan, ou s'il n'y a pas d'autre application ouverte, directement sur le bureau !!
    Comment résoudre mon problème ?

    P.S. : voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      Window: hWnd;
      DC: HDC;
    begin
      if ExeRunning('calc', False)=true then  begin    // fonction de la FAQ !
        Window := GetHandleFromWindowTitle('Calculatrice');  // pour trouver le Handle à partir du nom de la fenêtre d'une appli
        DC := GetWindowDC(Window);
        Ellipse(DC,70,3,20,20);
        ReleaseDC(Window,DC);
      end;
    end;

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Je n'utilise pas ExeRunning, car un simple FindWindow (dans ce cas) remplace cette fonction et GetHandleFromWindowTitle ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
      Window: hWnd;
      DC: HDC;
    begin
      Window := FindWindow(nil, 'Calculatrice');
      if Window > 0 then
      begin
        DC := GetWindowDC(Window);
        Ellipse(DC,70,3,20,20);
        ReleaseDC(Window,DC);
      end;
    end;
    personnellement, je n'ai aucun problème d'ellipse au mauvais endroit ...

  3. #3
    Membre actif Avatar de petitprince
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2006
    Messages : 322
    Points : 267
    Points
    267
    Par défaut
    Impécable !!!!!! merci à toi ShaiLeTroll

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/12/2006, 11h22
  2. Réponses: 7
    Dernier message: 27/06/2005, 22h05
  3. Réponses: 7
    Dernier message: 23/03/2005, 22h23
  4. Quatrième bouton sur la barre de titre d'une fenêtre
    Par Yacine95000 dans le forum MFC
    Réponses: 8
    Dernier message: 02/06/2004, 17h54

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