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 :

Canvas du parent [Interface]


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Points : 119
    Points
    119
    Par défaut Canvas du parent
    Bonjour,

    Je suis en train d'écrire un composant dont le graphisme dépend du fond sur lequel il se trouve (sorte de transparence).
    Or, je n'arrive pas à trouver comment récupérer les pixels situés en dessous de mon composant sur le parent.
    J'ai voulu écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TColor color = Parent->Canvas->Pixels[x,y]
    mais TWincontrol::Canvas est protégé...
    Quelqu'un saurait-il me dire comment on peut récupérer cette info (par l'API Win32 par exemple) ?

    Par avance merci
    A bientôt
    M.P.

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Citation Envoyé par Teaniel
    mais TWincontrol::Canvas est protégé...
    Je dirais mieux TWincontrol n'a pas de propriété canvas.

    Tu peux avoir la couleur de fond d'un TWincontrol en utilisant sa propriété Brush

    Ce qui pourait donner dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      TColor color = clDefautColor; // clDefautColor etant ce que tu veux.
      if(Parent) color=Parent->Brush->Color;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    Je te remercie de ta réponse.
    Tu as raison, j'ai confondu dans mes recherches...
    Cependant, cela ne change rien, j'ai besoin de récupérer la couleur du pixel situé sous le pixel correspondant de mon contrôle. Mon contrôle doit être sensible au fond sur lequel il est posé (un peu comme les parties système des fenêtres de Vista avec un autre comportement).
    Comme (cette fois j'en suis sur) WMPaint est géré au niveau TWinControl, je suis a peu près sur qu'il y a un HDC qu'on peut affecter à un canvas pour retrouver ce genre d'info.
    Je poursuis mes recherches dans ce sens.

    Toute info ou expérience sur ce sujet me sera utile si vous voulez bien l'ajouter

    Merci encore,
    +++ M.P.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Peut-être en faisant un truc de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    TCanvas* pCanvas = new TCanvas;
    try
    {
      pCanvas->Handle = GetDC( Parent->Handle );
      for (int i=0; i<20; i++)
        pCanvas->Pixels [i][i] = clRed;
      TColor color = pCanvas->Pixels [0][0];
    }
    __finally
    {
      delete pCanvas;
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Points : 119
    Points
    119
    Par défaut
    Merci tout plein totoche, c'est exactement la réponse que j'attendais!

    Je vais adapter ca tout de suite.

    A bientôt

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

Discussions similaires

  1. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  2. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28
  3. DLL, affichage et parent...
    Par KRis dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/12/2002, 17h01
  4. [Canvas] Listbox, couleur et multiselect
    Par rbag dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/09/2002, 13h02
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

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