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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
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