Comment augmenter la taille d'une font

Résolu
Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 - 17 juil. 2013 à 16:27
Oniria Messages postés 292 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

2 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 juil. 2013 à 17:30
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...
3
Oniria Messages postés 292 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 18 décembre 2014 3
22 juil. 2013 à 09:36
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
0
Rejoignez-nous