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

MFC Discussion :

CRichEdit, impression et couleur de l'arrière-plan


Sujet :

MFC

  1. #1
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut CRichEdit, impression et couleur de l'arrière-plan
    Salut à tous !

    Mon problème est plutôt simple :
    - J'ai un CRichEdit qui contient du texte et qui s'affiche correctement.
    - A ce CRichEdit est appliquée une couleur de fond à l'aide de la méthode SetBackgroundColor : la couleur s'affiche correctement. Cette couleur n'a rien à voir avec une éventuelle couleur de surlignement du texte qui serait codé dans le RTF.
    - Dans un deuxième temps je compte imprimer ce CRichEdit avec la méthode FormatRange. Le texte s'affiche correctement (police, taille, couleur, etc ...) à l'endroit que j'ai défini mais l'arrière-plan reste irrémédiablement blanc ... (j'ai aussi essayé la méthode DisplayBand, avec le même résultat).

    J'ai tenté de contourner le problème en remplissant le CRect dans lequel j'imprime le contenu du CRichEdit avec la couleur de l'arrière plan, mais sans succès (même après un SetBkMode(TRANSPARENT)).

    Il me semble que le CRichEdit est passablement buggé, j'ai d'ailleurs pu constater que ces fonctions d'impression (FormatRange et DisplayBand) changaient le CPen courrant et ne restituaient pas l'ancien ...

    Tout ceci pour introduire ma question :
    Est-ce que quelqu'un à déjà rencontré ce problème ? Si oui, avez-vous trouvé une solution de contournement ?

    Merci d'avance.


    PS : j'utilise le CRichEdit en version RICHEDIT50W.
    PPS : je suis (encore) sous VS 2008 SP1.
    Vous postez du code ? Merci d'utiliser les balises
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Docteur en informatique, diplômé en 2015 de l'EDSPI de Clermont-Ferrand

  2. #2
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Suis-je le seul à vouloir imprimer un CRichEdit ?
    Vous postez du code ? Merci d'utiliser les balises
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Docteur en informatique, diplômé en 2015 de l'EDSPI de Clermont-Ferrand

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Salut soit il faut rattacher une fonction/procédure de messages pour "subclasser" le contrôle avec SetWindowLong()
    Dans cette fonction il faut alors capter le WM_PAINT ou OnDraw du contrôle et effectuer le dessin voulu.
    Parce qu'un CRichEdit c'est aussi un fenêtre Windows dérivant de CWnd.

    Soit alors en définissant le contrôle à CustomDraw dans l'éditeur de ressources et capter WM_DRAWITEM qui fournit un HDC pour dessiner.
    Mais je ne sais pas si un CRichEdit peut être un contrôle utilisateur rédessinable par l'utilisateur (Custom Draw) je n'ai pas VC++ sous la main.

  4. #4
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Merci de m'avoir répondu. Par contre ce n'est pas ce que je demande et à mon avis surcharger la méthode de dessin d'un CRichEdit serait, à mon avis, vraiment trop fastidieux pour un résultat pas forcément au rdv.

    Pour résumer, mon soucis est qu'une méthode qui marche sur un DC d'écran ne marche pas sur un DC d'imprimante dans le cas du CRichEdit ...

    Un lien vers le même problème : http://www.codeproject.com/KB/printi...906#xx378906xx
    Non résolu pour le moment ...
    Vous postez du code ? Merci d'utiliser les balises
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Docteur en informatique, diplômé en 2015 de l'EDSPI de Clermont-Ferrand

  5. #5
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Citation Envoyé par TheGzD Voir le message
    Pour résumer, mon soucis est qu'une méthode qui marche sur un DC d'écran ne marche pas sur un DC d'imprimante dans le cas du CRichEdit ...
    :

    attention le DC de l'écran c'est pas la même chose que celui de l'imprimante
    ll faut tester les capacités hardware de l'imprimante avec GetDeviceCaps etc...

    Pour le CRichEdit on ne peut pas le mettre à Custom Draw j'ai vérifié...

  6. #6
    Membre émérite
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Points : 2 677
    Points
    2 677
    Par défaut
    Oui je sais bien.
    Mon problème réside dans le fait que la couleur du background (couleur fixée à l'aide d'une méthode propre au contrôle (voir mon 1er post)) du CRichEdit ne se dessine pas sur le DC de l'imprimante ...
    Après je ne vois pas trop ce que je pourrais faire au niveau du DC de l'imprimante pour régler ça. Surtout que je n'ai aucune idée de la façon dont s'y prend le CRichEdit pour dessiner son background
    Vous postez du code ? Merci d'utiliser les balises
    Un message vous paraît pertinent ? Merci de le gratifier d'un vote positif
    Vous avez obtenu une réponse à votre question ? Merci d'utiliser le tag
    __________________
    Ingénieur R&D, diplômé en 2007 de l'ISIMA
    Docteur en informatique, diplômé en 2015 de l'EDSPI de Clermont-Ferrand

Discussions similaires

  1. Qu'elle style css pour la couleur et l'arrière plan du texte ?
    Par Zeddicus Zorander dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/11/2009, 15h18
  2. [subplot] Couleur de l'arrière plan différent
    Par cedric06000 dans le forum Scilab
    Réponses: 3
    Dernier message: 16/07/2009, 14h17
  3. [JDesktopPane] changer la couleur de l'arrière plan
    Par interhossa007 dans le forum Débuter
    Réponses: 3
    Dernier message: 26/11/2008, 15h10
  4. Réponses: 1
    Dernier message: 23/06/2008, 21h57
  5. "Fade" sur la couleur de l'arrière plan
    Par sharpei dans le forum Flash
    Réponses: 0
    Dernier message: 31/01/2008, 21h21

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