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
Dans m_sFontName, j'ai le nom récupéré dans le combo.
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 // 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) );
Personnellement, je ne comprend pas, car même le "CreateFontIndirect" ne me dit rien. Je suis un peu perdu.
Merci d'avance
Partager