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

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

Votre réponse

2 réponses

Meilleure réponse
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 21 juil. 2013 à 17:30
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...

Merci yann_lo_san 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de yann_lo_san
Oniria 297 Messages postés dimanche 14 mars 2004Date d'inscription 18 décembre 2014 Dernière intervention - 22 juil. 2013 à 09:36
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.