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 :

[MFC]Font et Antialiasing


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut [MFC]Font et Antialiasing
    Bonjour,

    J'ai un petit probl�me que je traine dpuis longtemps et qu'il me fau r�soudre maintenant.
    Je m'explique j'ai fait une fonction DrawTexte (...) qui prend en param�tre un CDC*, la police, la taille, la d�coration (Bold, Italique et soulign�), l'angle...
    J'utilise la structure LOGFONT et CreateFontIndirect(...).
    Utilis� avec un CDC * de Fen�tre (CDialog, CView....), le Texte est Antialias�.

    Sur un CDC m�moire cr�e � partir du DC CreateCompatibleDC(NULL ) le texte n'est pas antialias� (Avec les m�mes params);

    En fait j'ai pens� que en m�moire les DC ne g�raient pas l'alpha ou un truc du genre, mais dans la MSDN, il est dit :

    A pointer to a device context. If pDC is NULL, the function creates a memory device context that is compatible with the system display.
    Or �tant sous XP, il ne devrait pas y avoir de probl�me de transparence...A moins que cela n'ai rien avoir....

    Si quun � une id�e, elle est bienvenue...

    Remarque : je peut pas avoir de dialogue car je suis dans une DLL ISAPI ?

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    tu n'as pas oubli� de selectionner la fonte dans le DC ?

  3. #3
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    Je l'ai pas mis mais je fait bien :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    		pOldFont = (HFONT)pDC->SelectObject(m_Font);

  4. #4
    Membre confirm�
    Inscrit en
    Juillet 2003
    Messages
    196
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 196
    Par d�faut
    Slt

    Poste de travail -> propi�t�s -> Avanc� -> (Performances param�tres)
    -> Effets visuels ->Lisser les polices d'�cran.

  5. #5
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    Citation Envoy� par LDDL
    Slt

    Poste de travail -> propi�t�s -> Avanc� -> (Performances param�tres)
    -> Effets visuels ->Lisser les polices d'�cran.
    j'ai v�rifi�, c'est bien coch�.
    De toute fa�on, quand je dessine ma font sur un DC d'une dialogBox, c'est liss�, mais quand je le faite en m�moire �a l'ai pas.
    Cela vient peut-�tre de �a d'ailleurs, cad que quand je dessine pour un DialogBox c'est liss� grace � ce param et quand je le fait en m�moire �a l'ai pas...

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    la fonte est bien selectionn�e dans le dc en memoire ? (je sais j'insiste)

  7. #7
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    ben oui, de toute fa�on mon texte se dessine bien en m�moire donc il la s�lectionn� a moins qu'il prenne la font par d�faut...
    Je vais faire un essai avec une fonte autre qu'Arial et Times New Roman...

  8. #8
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    si la fonte n'est pas selectionn�e il prend la fonte par d�faut .

  9. #9
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    j'ai essay� avec "Comic Sans MS" et c'est pareil !!!!!
    Mon texte est bien d�ssin� en Comic Sans MS mais pas Antialias�, je commence � croire que c'est du au fait que Windows XP applique un rendu sp�cifique, je vais essayer sur 98 et 2000...

  10. #10
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    Citation Envoy� par LDDL
    Slt

    Poste de travail -> propi�t�s -> Avanc� -> (Performances param�tres)
    -> Effets visuels ->Lisser les polices d'�cran.
    C'est toi qui a raison, j'ai d�sactiv� cette option, et l� le texte n'est pas antialias�, comme lorsque je d�ssine en m�moire...
    Donc c'est XP qui intervient sur le dessin...
    Il va faloir qe je me tappe l'antialisaing !!!!!

  11. #11
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    re,
    je suis quand meme etonn� de ce probleme ,
    que la creation d'un DC en memoire + une selection de fonte ne gere pas le antialiasing .
    tu es sur de la validit� de ta fonte comment tu la constitue ?
    note dans la faq il y a un post pour la recuperation d'une fonte systeme par son nom...


  12. #12
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    je sais je l'ai regard�, je peut te mettre le code demain, mais �a ressemble beaucoup a ce qu'il y a dans la faq.
    Par contre je travaille sous VC++ 6.0, et j'ai pas le GDI+. Je sais pas si �a y joue.

  13. #13
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    Bon ben comme promis :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    		HDC pDC;
    		if (hdc) pDC=hdc; else pDC = ::GetDC(0);
    		HDC TmpDC=CreateCompatibleDC(pDC);
    		//choose the font
    		HFONT m_Font;
    		LOGFONT* m_pLF;
    		m_pLF=(LOGFONT*)calloc(1,sizeof(LOGFONT));
    		strncpy(m_pLF->lfFaceName,font,31);
    		m_pLF->lfHeight=lSize;
    		m_pLF->lfWeight=lWeight;
    		m_pLF->lfItalic=bItalic;
    		m_pLF->lfUnderline=bUnderline;
    		m_pLF->lfQuality = PROOF_QUALITY;
    		m_pLF->lfOutPrecision = OUT_TT_ONLY_PRECIS;
    		m_pLF->lfClipPrecision = CLIP_LH_ANGLES | CLIP_DEFAULT_PRECIS;
    		m_pLF->lfPitchAndFamily = TRUETYPE_FONTTYPE;
    		m_Font=CreateFontIndirect(m_pLF);
    		//select the font in the dc
    		HFONT pOldFont=NULL;
    		if (m_Font)
    			pOldFont = (HFONT)SelectObject(TmpDC,m_Font);
    		else
    			pOldFont = (HFONT)SelectObject(TmpDC,GetStockObject(DEFAULT_GUI_FONT));
     
    		//Set text color
    		SetTextColor(TmpDC,RGB(255,255,255));
    		SetBkColor(TmpDC,RGB(0,0,0));
    		//draw the text
    		SetBkMode(TmpDC,OPAQUE);
    		//Set text position;
    		RECT pos = {0,0,0,0};
    		long len = strlen(text);
    		::DrawText(TmpDC,text,len,&pos,0);
     
    		//::TextOut( TmpDC, x, y ,text,len);
    		pos.right+=pos.bottom; //for italics

  14. #14
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    je vais mettre le post r�solu, mais bon il va falloir que je me tappe la r�cup�ration des Glyphe de chaque lettre!!!!

  15. #15
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    tu as essay� (au cas ou ) avec la recuperation du parametrage d'une fonte systeme voir faq ?
    on ne sait jamais .

  16. #16
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    je vais regarder...

  17. #17
    Membre chevronn�
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par d�faut
    Bon ben c'�tais tout con :

    il fallait remplacer :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     m_pLF->lfQuality = PROOF_QUALITY;
    par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     m_pLF->lfQuality = ANTIALIASED_QUALITY;
    sauf que dans ma MSDN je n'avais que :
    DEFAULT_QUALITY, DRAFT_QUALITY et PROOF_QUALITY !!!

    Cette fois il est vraiment r�solu.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MFC] Mettre une fonte par d�faut.
    Par pier* dans le forum MFC
    R�ponses: 1
    Dernier message: 09/11/2007, 17h29
  2. [MFC] Augmenter la taille des fonts
    Par OverLorD34 dans le forum MFC
    R�ponses: 3
    Dernier message: 06/04/2006, 10h28
  3. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    R�ponses: 8
    Dernier message: 08/06/2005, 15h57
  4. [MFC] Comparaison de Font
    Par nico-pyright(c) dans le forum MFC
    R�ponses: 7
    Dernier message: 11/02/2004, 09h18
  5. R�ponses: 2
    Dernier message: 10/06/2002, 11h03

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