Comment augmenter la taille d'une font [Résolu]

Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
- - Dernière réponse : Oniria
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
- 22 juil. 2013 à 09:36
Bonjour,

Je suis débutant en C++ et je ne parviens pas à modifier la taille de la Fonte utilisé dans mon application.
Pour être plus précis, je calcule au démarage de l'application (OnInitInstance) la taille optimale de ma fonte en fonction de la taille de l'écran (mon appli fait tout l'écran).
Le calcule est bon mais mes textes et entrée de texte ne prennet pas la bonne taille (je veux affecter cette valeur à tous les controles de la fiche).

J'ai codé ca :

/////////////////////////////////////////////////////////////////////////////
// CProgNGDlg message handlers

BOOL CProgNGDlg::OnInitDialog()
{
CDialog::OnInitDialog();

int siTailleEcranX;
int siTailleEcranY;
int siTailleZoneX;
int siTailleZoneY;
int siValue;
float sfCoefEcranX;
float sfCoefEcranY;

CRect rect;

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// On cherche la taille écran
siTailleEcranX = CX_SCREEN;
siTailleEcranY = CY_SCREEN;

//Calcul des coefficients de zoom
// la fiche de base fait 231*150
sfCoefEcranX = siTailleEcranX / 231;
sfCoefEcranY = siTailleEcranY / 150;

// on fixe ici la taille exact de la fenêtre
MoveWindow(0,0,siTailleEcranX,siTailleEcranY);

// On récupére la taille du client contenant tous
GetClientRect(&rect);
siTailleZoneX = rect.Width();
siTailleZoneY = rect.Height();

// On modifie la taille des controles
// D'abord la taille de la police
siValue = (18*siTailleEcranY)/600; // calcul de la taille de la police
// On créer une font

m_fFont.CreateFont(siValue,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_DONTCARE,"MS Sans Serif");

// On utilise la font
SetFont(&m_fFont, TRUE);

// On déplace le texte code barre
GetDlgItem(IDC_STATIC_CODE_BARRE)->MoveWindow( 5*sfCoefEcranX, 5*sfCoefEcranY, 42*sfCoefEcranX, 8*sfCoefEcranY);

// On déplace le code barre
GetDlgItem(IDC_CODE_BARRE)->MoveWindow( 5*sfCoefEcranX, 15*sfCoefEcranY, siTailleZoneX - 10*sfCoefEcranX, 12*sfCoefEcranY);

// On déplace le texte Resultat
GetDlgItem(IDC_STATIC_RESULTAT)->MoveWindow( 5*sfCoefEcranX, 30*sfCoefEcranY, 45*sfCoefEcranX, 8*sfCoefEcranY);

// On déplace la fenetre de résultat
GetDlgItem(IDC_RESULTAT)->MoveWindow( 5*sfCoefEcranX, 40*sfCoefEcranY, 155*sfCoefEcranX, 85*sfCoefEcranY);

// On déplace l'image
GetDlgItem(IDC_BITMAP)->MoveWindow( siTailleZoneX - (60+5)*sfCoefEcranX , 40*sfCoefEcranY, 60*sfCoefEcranX, 85*sfCoefEcranY);

// On déplace le texte code barre
GetDlgItem(IDC_STATIC_CODE_BARRE)->MoveWindow( 5*sfCoefEcranX, 5*sfCoefEcranY, 42*sfCoefEcranX, 8*sfCoefEcranY);

// On déplace le bouton Quitter
GetDlgItem(IDCANCEL)->MoveWindow( 5*sfCoefEcranX, siTailleZoneY - (5+14)*sfCoefEcranY , siTailleZoneX - 10*sfCoefEcranX, 14*sfCoefEcranY);

m_StaticResult.SetWindowText("Recherche du programmateur...\n");

// démarrage de la thread de programmation
m_Programmation.CreateThread();

return TRUE; // return TRUE unless you set the focus to a control
}

Ca peut paraitre idiot mais je ne comprend pas pourquoi, j'arrive à déplacer correctement mes controles mais la Fonte , nada...
Je développe avec Visual C++ version 6

Merci à ceux qui voudront bien m'aider !
Oniria
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
3
Merci
Salut,

As tu essayé d'appliquer le SetFont aux controles directement,
exemple :

((CStatic*)GetDlgItem(IDC_STATIC_CODE_BARRE))->SetFont(&m_fFont, TRUE);
((CEdit*)GetDlgItem(IDC_CODE_BARRE))->SetFont(&m_fFont, TRUE);

Bye...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
296
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
18 décembre 2014
2
0
Merci
Merci beaucoup Yann_lo_san. Ca marche nickel ce systéme. Je m'étais obstiné à changer la font sur la fiche.
En affectant la fonte directement aux éléments de la fiche, ca marche bien.


Oniria
Commenter la réponse de Oniria