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