Changer de police de caractères dans DC
Bonjour,
J'ai un soucis lors du changement de police d'un DC. Et oui, en fait j'y arrive presque parfaitement à part quelques détails.
En fait quand je change de police grace à un combox, créé à partir de l'exemple Wordpad, je passe de l'"Arial" au "Times Roman" sans problème. Certaines autres polices de caractères fonctionnent.
Mais il existe un bon pourcentage de police qui ne s'affiche pas correctement. A la place, j'ai la police par défaut "Arial".
Voici le remplissage de la structure LOGFONT
Code:
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
| // Font name
if ( !m_sFontName.IsEmpty ( ) )
strncpy ( lf.lfFaceName, m_sFontName, LF_FACESIZE );
// Font size
lf.lfWidth = m_nFontSize;
lf.lfHeight = m_nFontSize;
// Gras
if ( m_bIsBold )
lf.lfWeight=FW_BOLD;
else
lf.lfWeight=FW_NORMAL;
// Italic
lf.lfItalic = m_bIsItalic;
// Underline
lf.lfUnderline = m_bIsUnderline;
m_oFont.DeleteObject();
VERIFY ( m_oFont.CreateFontIndirect(&lf) ); |
Dans m_sFontName, j'ai le nom récupéré dans le combo.
Personnellement, je ne comprend pas, car même le "CreateFontIndirect" ne me dit rien. Je suis un peu perdu.
Merci d'avance