IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC]Utilisation d'un SLIDER , problème de conversion


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut [MFC]Utilisation d'un SLIDER , problème de conversion
    Bonjour,

    J'ai voulu rajouter un slider associer à une Edit box mais j'obtiens 2 erreurs et 6 warnings......il me semble que j'ai pas mal d'erreur et warnings de conversion, comment les éviter...... j'utilise des float,CString.

    Edit Box -->IDC_SLIDER_VALUE --> m_SliderValue
    Slider --> IDC_Slider --> m_slider



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Mes warnings:'=' : truncation from 'const double' to 'float
                        'initializing' : truncation from 'const double' to 'float'
                       '=' : conversion from 'double' to 'float', possible loss of data ]
    Mes erreurs: [ error C2677: binary '*' : no global operator defined which takes type 'class CString' (or there is no acceptable conversion)

    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    void CSimul_AngleDlg::OnCalcul() 
    {
    UpdateData(TRUE);
    //Déclaration des constantes
    float PI=3.141592654;
    float cos45= 0.7071067812;
     
    //Calcul des coefficient de la droite
    float a,b,Force_directe,Force_Etal;
    a=(m_ff2-m_ff1)/(m_fv2-m_fv1);
    b=-a;
     
    //Calcul des angles 
    float alpha1,alpha2;
    alpha1=m_fAngle/2;
    alpha2=cos(alpha1*PI/180.0);
     
    //Calcul de la force étalonnée
    //Selection unité
    CString sUnit;
    switch(m_iUnit){
    case 0 : sUnit="daN";break;
    case 1 : sUnit="lbs";break;	
    default: sUnit=" ";}
     
    m_sUnit=m_sUnit2=sUnit; 
     
    	if (m_iUnit==0)
    	{
                    Force_directe=(a*m_SliderValue+ b);               // Mon erreur 
    	Force_Etal=Force_directe/cos45/alpha2;
    	}
    	else 
    	{
    	Force_directe=(a*m_SliderValue+ b)*2.2;          // mon erreur
                    Force_Etal=(Force_directe/cos45/alpha2)*2.2;
    	}
     
    //Affichage
    	m_FE.Format("%.3f",Force_Etal);
    	m_FD.Format("%.3f",Force_directe);
    	m_A2.Format("%.3f",alpha2);
    UpdateData(FALSE);	
    }
     
    void CSimul_AngleDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    	{
    	if(nSBCode == SB_THUMBPOSITION) { 
    	m_SliderValue.Format("%ld", nPos);
        UpdateData(false); 
    	}
    	else { 
                           CDialog::OnHScroll(nSBCode, nPos, pScrollBar); 
    	      }
     
    }

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut,

    les warning c'est pour te dire que la conversion qui est faite peut entrainer des pertes de décimales. tu peux faire un static_cast <float> pour dire au compilo que tu sais ce qui se passe et que tu en assumes la responsabilité

    l'erreur (déjà ce serait bien de savoir à quelle ligne, j'ai pas lu tout le code) signifie que tu tentes quelquepart d'utiliser l'opérateur * sur un CString. comme l'opérateur * pour la classe CString n'est pas défini, ça risk pas de marcher.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2008, 14h48
  2. [MFC]utilisation d'un slider
    Par jiraya43 dans le forum MFC
    Réponses: 12
    Dernier message: 15/05/2006, 15h32
  3. [MFC] Problème de conversion CString vers Char *
    Par Darkenshin dans le forum MFC
    Réponses: 10
    Dernier message: 02/12/2005, 14h42
  4. Réponses: 11
    Dernier message: 02/09/2003, 14h20
  5. [MFC] Utilisation Drivers
    Par LAPLACE dans le forum MFC
    Réponses: 4
    Dernier message: 21/12/2002, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo