1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| void AdapterTailleSuivantResolution()
{
float f_CoeffXMultiplicateur;
float f_CoeffYMultiplicateur;
float cx;
float cy;
//récupération de la résolution (x et y) en cours
cx = (float)m_p_ConfigurationManager->getCxCible();
cy = (float)m_p_ConfigurationManager->getCyCible();
//Calcul des coefficients multiplicateur
f_CoeffXMultiplicateur = cx/m_p_ConfigurationManager->getCxStandard();
f_CoeffYMultiplicateur = cy/m_p_ConfigurationManager->getCyStandard();
//Si la résolution en cours est inférieur à la résolution
//standard (1280*1024) on applique les coefficients à la
//taille et à la position de tous les éléments de la fenêtre
if ((cx < m_p_ConfigurationManager->getCxStandard() || cy < m_p_ConfigurationManager->getCyStandard()))
{
POINT coinHGArriveeFenetre;
CRect rectFenetre;
this->GetWindowRect(&rectFenetre);
//traitement pour la fenetre
int i_hauteurFenetreDepart = rectFenetre.Height();
int i_largeurFenetreDepart = rectFenetre.Width();
int i_hauteurFenetreArrivee = (int)(i_hauteurFenetreDepart*f_CoeffYMultiplicateur);
int i_largeurFenetreArrivee = (int)(i_largeurFenetreDepart*f_CoeffXMultiplicateur);
coinHGArriveeFenetre.x = (LONG)(rectFenetre.left*f_CoeffXMultiplicateur);
coinHGArriveeFenetre.y = (LONG)(rectFenetre.top*f_CoeffYMultiplicateur);
this->MoveWindow(coinHGArriveeFenetre.x,coinHGArriveeFenetre.y,i_largeurFenetreArrivee,i_hauteurFenetreArrivee,TRUE);
//Récupération de tous les éléments de la fenêtre
CWnd *pCtrl=this->GetWindow(GW_CHILD);
while(pCtrl)
{
CRect rect;
//pCtrl->GetClientRect(&rect);
pCtrl->GetWindowRect(&rect);
POINT coinHGDepart;
POINT coinHGArrivee;
int i_hauteurDepart;
int i_largeurDepart;
int i_hauteurArrivee;
int i_largeurArrivee;
//traitement pour les éléments de la fenêtre
i_hauteurDepart = rect.Height();
i_largeurDepart = rect.Width();
coinHGDepart.x = rect.left;
coinHGDepart.y = rect.top;
i_largeurArrivee = (int)(i_largeurDepart*f_CoeffXMultiplicateur);
i_hauteurArrivee = (int)(i_hauteurDepart*f_CoeffYMultiplicateur);
coinHGArrivee.x = (LONG)((coinHGDepart.x)*f_CoeffXMultiplicateur);
coinHGArrivee.y = (LONG)((coinHGDepart.y)*f_CoeffYMultiplicateur);
pCtrl->MoveWindow(coinHGArrivee.x,coinHGArrivee.y,i_largeurArrivee,i_hauteurArrivee);
//pCtrl->SetWindowPos(pCtrl,coinHGArrivee.x,coinHGArrivee.y,i_largeurArrivee,i_hauteurArrivee,SWP_SHOWWINDOW);
//pCtrl->RedrawWindow();
pCtrl = pCtrl->GetWindow(GW_HWNDNEXT);
}//Fin while(pCtrl)
//this->SetWindowPos(this,coinHGArriveeFenetre.x,coinHGArriveeFenetre.y,i_largeurFenetreArrivee,i_hauteurFenetreArrivee,SWP_SHOWWINDOW);
this->RedrawWindow();
}
else
{
//Ne rien faire
}//Fin if
}//Fin fonction AdapterTailleSuivantResolution() |
Partager