Bonjour
Je developpe une appli sous embedded Vusual C++ 4, pour un terminal, depuis peu.
Je souhaite ecrire une fonction qui puisse changer la police d'un controle.
J'ai adapté un bout de code trouvé sur dvlpez, mais ca marche pas bien.
Si j'appelle la fonction en lui donnant chaque fois le meme CStatic,
ca marche, il me le met en gras.
Mais quand je ferme l'appli, j'ai un msgbox "assertion Failed" winhand.cpp, line 240
Si j'appelle la fonction avec des Static differents, le 2eme appelle fait un plantage aussi.
Voici mon code
Pour l'appeller voici mon code, au sein de l'applie
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 void CWnd_Police_Changer_Mettre_En_X_Cplx(CWnd * Ctrl,int FW_X) {//Adaptation de Developpez.com : ScarFace : Faq VC CWnd *pWnd = Ctrl; CFont* pFont = pWnd->GetFont(); if(pFont!=NULL) { LOGFONT lf; pFont->GetLogFont(&lf); lf.lfWeight=FW_X;//mettre l'attribut en gras(FW_BOLD) par exemple. pFont->DeleteObject(); // destruction GDI de l'ancien objet eventuellement pFont->CreateFontIndirect(&lf); // creation de la fonte d'apres la LOGFONT pWnd->SetFont(pFont); // affectation de la nouvelle fonte } }
Merci pour vos lumieres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ... CWnd_Changer_Mettre_En_X_Cplx(GetDlgItem(IDC_Static_Nom),FW_BOLD);
Partager