[MFC] Changement de la police d'un contrôle
Bonjour,
Je n'arrive pas à changer la police de contrôles créés en utilisant la fonction Create().
Je crée mes boutons à l'initialisation (dans OnInitDialog()) comme ceci :
Code:
1 2 3
| CRect ButtonRect;
[...] //init de ButtonRect
m_Button.Create("Update View",WS_VISIBLE,ButtonRect,this,ID_BUTTONUPDATE); |
Tous les objets créés de cette manière sont en gras et j'aimerai qu'ils soient en normal.
Pour ça j'ai créé une classe CBoldButton dérivée de CButton avec la méthode suivante (j'ai utilisé la FAQ) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| void CBoldButton::SetBold(bool bState)
{
CFont* pFont = this->GetFont();
if(pFont!=NULL)
{
LOGFONT lf;
pFont->GetLogFont(&lf);
if(bState)
lf.lfWeight=FW_BOLD;
else
lf.lfWeight=FW_NORMAL;
m_Font.DeleteObject(); // destruction GDI de l'ancien objet eventuellement
m_Font.CreateFontIndirect(&lf); // creation de la fonte d'apres la LOGFONT
}
this->SetFont(&m_Font); // affectation de la nouvelle fonte.
} |
Cette méthode fonctionne très bien pour les CBoldButton créés de manière classique (placement dans le fenêtre de ressource et choix du type par le ClassWizard), par contre les boutons créés par Create() ne changent jamais d'état !
J'espère que ce problème aura plus de succés que mes précédentes questions :(