Oniria
Messages postés292Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention18 décembre 2014
-
17 juil. 2013 à 16:27
Oniria
Messages postés292Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention18 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).
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 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
Oniria
Messages postés292Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention18 décembre 20143 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.