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 :

[DéButant] Progress Bar


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut [DéButant] Progress Bar
    Re-Bonjour a tous

    J'ai une deuxieme question, etant débutant je veut integrer a mon application ( Un toute petite application ou quand on apuye sur un bouton ca rajoute +1 a chaque fois dans une EditBox) une progressBar mais malheuresement je ne sais pas faire de A a Z.... j'ai chercher de partout, MSDN = pas de reponse concluante ou en anglais..., ou encore http://www.developpez.net/forums/sea...earchid=614838 mais là encore le niveau etait "trop elevé" pour moi.

    Je m'en remet donc a vous, j'espere que vous pourrez m'expliquer un peu plus comment je doit m'y prendre.

    Merci d'avance

    En cadeau une portion de mon code source : (j'espere qu'il vous servira...)

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    #include "stdafx.h"
    #include "DEV2.h"
    #include "DEV2Dlg.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    
    // boîte de dialogue CAboutDlg utilisée pour la boîte de dialogue 'À propos de' pour votre application
    
    class CAboutDlg : public CDialog
    {
    public:
    	CAboutDlg();
    
    // Données de boîte de dialogue
    	enum { IDD = IDD_ABOUTBOX };
    
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // Prise en charge de DDX/DDV
    
    // Implémentation
    protected:
    	DECLARE_MESSAGE_MAP()
    };
    
    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
    {
    }
    
    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    }
    
    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
    END_MESSAGE_MAP()
    
    
    // boîte de dialogue CMonDial
    
    
    
    
    CMonDial::CMonDial(CWnd* pParent /*=NULL*/)
    	: CDialog(CMonDial::IDD, pParent)
    	, m_Valeur(0)
    {
    	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }
    
    void CMonDial::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
        DDX_Text(pDX, IDC_EDIT2, m_Valeur);
    DDX_Control(pDX, IDC_PROGRESS1, m_progress_exec); (c'est moi qui est rajouté ca directement en ligne de commande. suis-je sur le bon chemin ? ou peut etre pas du tout...)
    }
    
    BEGIN_MESSAGE_MAP(CMonDial, CDialog)
    	ON_WM_SYSCOMMAND()
    	ON_WM_PAINT()
    	ON_WM_QUERYDRAGICON()
    	//}}AFX_MSG_MAP
    	ON_BN_CLICKED(IDCLOSE, &CMonDial::OnBnClickedClose)
    	ON_BN_CLICKED(IDC_BUTTON2, &CMonDial::OnBnClickedButton2)
    	ON_BN_CLICKED(IDC_BUTTON3, &CMonDial::OnBnClickedButton3)
    
    END_MESSAGE_MAP()
    
    
    // gestionnaires de messages pour CMonDial
    
    BOOL CMonDial::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    
    	// Ajouter l'élément de menu "À propos de..." au menu Système.
    
    	// IDM_ABOUTBOX doit se trouver dans la plage des commandes système.
    	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    	ASSERT(IDM_ABOUTBOX < 0xF000);
    
    	CMenu* pSysMenu = GetSystemMenu(FALSE);
    	if (pSysMenu != NULL)
    	{
    		CString strAboutMenu;
    		strAboutMenu.LoadString(IDS_ABOUTBOX);
    		if (!strAboutMenu.IsEmpty())
    		{
    			pSysMenu->AppendMenu(MF_SEPARATOR);
    			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    		}
    	}
    
    	// Définir l'icône de cette boîte de dialogue. L'infrastructure effectue cela automatiquement
    	//  lorsque la fenêtre principale de l'application n'est pas une boîte de dialogue
    	SetIcon(m_hIcon, TRUE);			// Définir une grande icône
    	SetIcon(m_hIcon, FALSE);		// Définir une petite icône
    
    	// TODO : ajoutez ici une initialisation supplémentaire
    	
    	m_progress_exec.SetRange(0,20);
    	m_progress_exec.SetStep(1);
    	m_progress_exec.SetPos(0)  (J'ai rajouté ca comme ca tout seul   mais je croit que j'ai fait un peu n'importe quoi...... 
    	return TRUE;  // retourne TRUE, sauf si vous avez défini le focus sur un contrôle
    }
    
    void CMonDial::OnSysCommand(UINT nID, LPARAM lParam)
    {
    	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    	{
    		CAboutDlg dlgAbout;
    		dlgAbout.DoModal();
    	}
    	else
    	{
    		CDialog::OnSysCommand(nID, lParam);
    	}
    }
    
    // Si vous ajoutez un bouton Réduire à votre boîte de dialogue, vous devez utiliser le code ci-dessous
    //  pour dessiner l'icône. Pour les applications MFC utilisant le modèle Document/Vue,
    //  cela est fait automatiquement par l'infrastructure.
    
    void CMonDial::OnPaint()
    {
    	if (IsIconic())
    	{
    		CPaintDC dc(this); // contexte de périphérique pour la peinture
    
    		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
    
    		// Centrer l'icône dans le rectangle client
    		int cxIcon = GetSystemMetrics(SM_CXICON);
    		int cyIcon = GetSystemMetrics(SM_CYICON);
    		CRect rect;
    		GetClientRect(&rect);
    		int x = (rect.Width() - cxIcon + 1) / 2;
    		int y = (rect.Height() - cyIcon + 1) / 2;
    
    		// Dessiner l'icône
    		dc.DrawIcon(x, y, m_hIcon);
    	}
    	else
    	{
    		CDialog::OnPaint();
    	}
    }
    
    // Le système appelle cette fonction pour obtenir le curseur à afficher lorsque l'utilisateur fait glisser
    //  la fenêtre réduite.
    HCURSOR CMonDial::OnQueryDragIcon()
    {
    	return static_cast<HCURSOR>(m_hIcon);
    }
    
    
    void CMonDial::OnBnClickedClose()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	OnOK();
    
    }
    
    void CMonDial::OnBnClickedButton2()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
        m_Valeur = m_Valeur + 1;
    	UpdateData(FALSE);
    
    }
    
    void CMonDial::OnBnClickedButton3()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	m_Valeur = 0;
    	UpdateData(FALSE);
    
    }

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    re,
    c'est quoi le probléme ?
    tu l'as rajoutée à la main cette ligne ?
    si c'est le cas c'est mal..
    il faut mettre le controle dans la resource (la boite de dialogue).
    faire clic droit sur le controle : ajouter une variable.
    choisir une variable de type controle.
    aprés tu peux travailler avec la variable ,ton code devrait etre correcte..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Oui, je l'ai rajouté a la main, c'est mal... je sais...
    j'esseye comme tu me la dit et je te previent, en tout cas Merci pour ta reponse.

    hello world

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Bonjour a Tous
    pour mon probleme, hum, resultat peu concluant...

    j'ai fait comme tu a dit, j'ai rajouté un controle puis une variable nommé m_progress_exec ca a enssuite crée la ligne que j'avai rajouté a la main ( la premiere ligne) puis j'ai retape mon code dans initdialog :

    m_progress_exec.SetRange (0, 20)
    m_progress_exec.SetStep(1)
    m_progress_exec.SetPos(0)

    mais comment faire pour qu'il comprenent que je parle bien de mon EditBox ?

    car ca ne fait pas grand chose pour le moment dans l'appli, pas d'erreur mais rien de concluant non plus....

    Sinon j'ai une autre question qu'est devenu la variable CString (Visual C++ 6.0) dans .Net 2005 Pro ?

    car pareil j'ai esseyé d'utuliser CString et il ne veut rien entendre... alors que si mes souvenir son bon il suffisait de mettre :

    // Avec ca dans VC ++ 6.0 ca marchai nikel....
    CString Message = "### Execution du Programme ###";

    Merci a tous

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    je ne comprends pas trop tes problémes ...
    CString existe toujours ...
    si tu veux de l'aide il faut etre plus précis sur la nature des erreurs rencontrées.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Disont que difficile d'expliquer quelques chose qu'on ne maitrise pas... j'esseye d'etre plus comprehenssible :

    Tout d'abord pour la ProgressBar, je vois pas comment mieux expliquer j'ai fait tout ce que je connaissait ( je ne connait pas grand chose) mais ca ne marche pas, tu a vu ou j'en suis ( niveau controle et variable, niveau code aussi) donc ma question c'est justement ou est le probleme ??... je ne comprend pas pourquoi ca ne marche pas... sinon je t'expliquerai volontier le probleme d'ou il vient et je le reglerai aussi surment tout seul
    De plus quand je debug ca ne trouve aucun probleme mon application roule comme sur des roulette... Mais ma progressBar elle, ne progresse pas.

    Sinon pour le CString c'est simple, comment l'utuliser sous VC++ .NET 2005 car ont ne peut plus de la meme maniere que sous VC ++ 6.0.... ? ( si il y a deja un topic ou une reponse dans la FAQ je suis désoler je ne l'ai pas vu, faut dire j'ai pas pris le temp de chercher de partout )

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Par défaut
    Bonjour,

    Je ne vois pas comment ton progress peut s'incrémenter.
    Si tu veux l'incrémenter sur clic du bouton2, il faut faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CMonDial::OnBnClickedButton2()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
        m_Valeur = m_Valeur + 1;
        UpdateData(FALSE);
        m_progress_exec.SetPos(m_Valeur); // Ligne à rajouter
    }

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    un Grand Merci a toi Sifo-Dyas , une reponse propre, qui veut tout dire, c'est pile ce que j'attendait

    Sinon une autre question toujours sur les PB pour rester dans le Sujet :

    j'ai fait une appli avec une EditBox, un Bouton et un PB j'aimerai que quand je rentre une valeur decimale dans l'editbox et que je clique sur le boutton ca me remplisse ma progresseBar a hauteur de la valeur décimale, comment doi-je m'y prendre ?

    Merci d'avance a tous, merci beaucoup vous m'aider enormement

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    un setpos de la valeur entière devrait suffire non ?
    sinon pour revenir au sujet de ta CString tu nous a toujours pas montré les erreurs rencontrées ...(messages du compilo par exemple).
    parce que je le répète il n'y a pas de problème pour l'utilisation d'une CString sous vc2005 en MFC .
    peut être un problème d'utilisation si tu as laissé la configuration par défaut des chaines en UNICODE mais c'est tout.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    peut être un problème d'utilisation si tu as laissé la configuration par défaut des chaines en UNICODE mais c'est tout.

    Merci pour la reponse a la question CString j'ai compris maintenant

    Sinon, un SetPos de la valeur entiere ca veut dire quoi exactement ?

    par exemple, sur la variable de mon editBox j'ai mis mini 0 et max 100 si dans le code du boutton je met :

    m_progress2.SetPos(100) ca me m'afficherai ma PB a remplie a fond tout le temp non ?

  11. #11
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    le mieux c'est que la fourchette de valeurs tienne compte de la réalité ...
    si tu dois avoir des chiffres reels de de 0. a 599.87 (je dis n'importe quoi)
    le setrange sera de 0 a 600 .
    le Setpos pour la valeur de 200.5 sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double f=200.5;
    m_progress_exec.Setpos(static_cast<int>(f));

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Merci pour ta reponse, je veut pas t'embeter, mais pourrait tu m'expliquer un peu le purquoi du comment, car taper betement du code c'est bien mais ca m'aprend pas grand chose et là j'ai pas compris....
    Un grand merci tout de meme !!!!

    Ca ne marche pas, ci dessous mon code source, les controle concerné se nomme :

    m_progress2 (deuxieme ProgressBar)
    m_value2 (Deuxieme EditBox)
    m_svalue (Deuxieme Bouton)

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    // dev 10Dlg.cpp : fichier d'implémentation
    //
     
    #include "stdafx.h"
    #include "dev 10.h"
    #include "dev 10Dlg.h"
     
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
     
     
    // boîte de dialogue Cdev10Dlg
     
     
     
     
    Cdev10Dlg::Cdev10Dlg(CWnd* pParent /*=NULL*/)
    	: CDialog(Cdev10Dlg::IDD, pParent)
    	, m_value(0)
    	, m_value2(0)
    {
    	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }
     
    void Cdev10Dlg::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	DDX_Control(pDX, IDC_PROGRESS1, m_progress);
    	DDX_Text(pDX, IDC_EDIT1, m_value);
    	DDX_Text(pDX, IDC_EDIT2, m_value2);
    	DDX_Control(pDX, IDC_PROGRESS2, m_progress2);
    	DDX_Control(pDX, IDC_BUTTON3, m_svalue);
    }
     
    BEGIN_MESSAGE_MAP(Cdev10Dlg, CDialog)
    	ON_WM_PAINT()
    	ON_WM_QUERYDRAGICON()
    	//}}AFX_MSG_MAP
    	ON_BN_CLICKED(IDCANCEL, &Cdev10Dlg::OnBnClickedCancel)
    	ON_BN_CLICKED(IDC_BUTTON1, &Cdev10Dlg::OnBnClickedButton1)
    	ON_BN_CLICKED(IDC_BUTTON2, &Cdev10Dlg::OnBnClickedButton2)
    	ON_NOTIFY(NM_CUSTOMDRAW, IDC_PROGRESS1, &Cdev10Dlg::OnNMCustomdrawProgress1)
    	ON_BN_CLICKED(IDC_BUTTON3, &Cdev10Dlg::OnBnClickedButton3)
    	ON_NOTIFY(NM_CUSTOMDRAW, IDC_PROGRESS2, &Cdev10Dlg::OnNMCustomdrawProgress2)
    	ON_EN_CHANGE(IDC_EDIT2, &Cdev10Dlg::OnEnChangeEdit2)
    END_MESSAGE_MAP()
     
     
    // gestionnaires de messages pour Cdev10Dlg
     
    BOOL Cdev10Dlg::OnInitDialog()
    {
    	CDialog::OnInitDialog();
     
    	// Définir l'icône de cette boîte de dialogue. L'infrastructure effectue cela automatiquement
    	//  lorsque la fenêtre principale de l'application n'est pas une boîte de dialogue
    	SetIcon(m_hIcon, TRUE);			// Définir une grande icône
    	SetIcon(m_hIcon, FALSE);		// Définir une petite icône
     
    	// TODO : ajoutez ici une initialisation supplémentaire
     
    	m_progress.SetRange(0, 20);
    	m_progress.SetStep(1);
    	m_progress.SetPos(0);
     
    	m_progress2.SetRange(0, 1000);
    	m_progress2.SetStep(1);
    	m_progress2.SetPos(0);
     
    	return TRUE;  // retourne TRUE, sauf si vous avez défini le focus sur un contrôle
    }
     
    // Si vous ajoutez un bouton Réduire à votre boîte de dialogue, vous devez utiliser le code ci-dessous
    //  pour dessiner l'icône. Pour les applications MFC utilisant le modèle Document/Vue,
    //  cela est fait automatiquement par l'infrastructure.
     
    void Cdev10Dlg::OnPaint()
    {
    	if (IsIconic())
    	{
    		CPaintDC dc(this); // contexte de périphérique pour la peinture
     
    		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
     
    		// Centrer l'icône dans le rectangle client
    		int cxIcon = GetSystemMetrics(SM_CXICON);
    		int cyIcon = GetSystemMetrics(SM_CYICON);
    		CRect rect;
    		GetClientRect(&rect);
    		int x = (rect.Width() - cxIcon + 1) / 2;
    		int y = (rect.Height() - cyIcon + 1) / 2;
     
    		// Dessiner l'icône
    		dc.DrawIcon(x, y, m_hIcon);
    	}
    	else
    	{
    		CDialog::OnPaint();
    	}
    }
     
    // Le système appelle cette fonction pour obtenir le curseur à afficher lorsque l'utilisateur fait glisser
    //  la fenêtre réduite.
    HCURSOR Cdev10Dlg::OnQueryDragIcon()
    {
    	return static_cast<HCURSOR>(m_hIcon);
    }
     
     
    void Cdev10Dlg::OnBnClickedCancel()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	OnCancel();
    }
     
    void Cdev10Dlg::OnBnClickedButton1()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	m_value = m_value +1;
    	UpdateData(FALSE);
    	m_progress.SetPos(m_value);
    }
     
    void Cdev10Dlg::OnBnClickedButton2()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	m_value = 0;
    	UpdateData(FALSE);
    	m_progress.SetPos(0);
    }
     
    void Cdev10Dlg::OnNMCustomdrawProgress1(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	*pResult = 0;
    }
     
    void Cdev10Dlg::OnBnClickedButton3()
    {
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	double f= m_value2;
        m_progress2.SetPos(static_cast<int>(f));
    }
     
    void Cdev10Dlg::OnNMCustomdrawProgress2(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	*pResult = 0;
    }
     
    void Cdev10Dlg::OnEnChangeEdit2()
    {
    	// TODO:  S'il s'agit d'un contrôle RICHEDIT, le contrôle
    	// n'enverra la notification que si vous substituez la fonction CDialog::OnInitDialog()
    	// et l'appel CRichEditCtrl().SetEventMask()
    	// avec l'indicateur ENM_CHANGE ajouté au masque grâce à l'opérateur OR.
     
    	// TODO:  Ajoutez ici le code de votre gestionnaire de notification de contrôle
     
     
     
    }
    J'ai pourtant bien fait comme tu me l'a dit...enfin surment pas, mais je croit...




    Désoler, apres avoir fait tourner mon cerveau quelques secondes j'ai trouvé la solution a mon probleme merci pour les conseils tu ma beaucoup aider

    EDIT : Code Source Corrigé et Fonctionel.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Par défaut
    Je pense que tu as mal interprété la réponse de farscape.

    Dans ton InitDialog,
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_progress2.SetPos(200.5);
    Dans la fonction OnBnClickedButton3 (Qui est l'évenement produit lorsque tu clic sur ton bouton), il faut que tu récupére la valeur saisie (m_value2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UpdateData(); // Pour mettre à jour les données que tu vas traiter
     
    int iValue2 = atoi(m_value2); // Pour récupérer la valeur entière que tu as saisie
     
    m_progress2.SetPos(iValue2); // Pour mettre à jour le progress
    PS:Je ne vois pas interet d'utiliser un décimal ici.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    Merci pour toute cette aide, mon aplication fonctionne parfaitement maintenant, une derniere question sur ce sujet :

    Que veut dire m_progress_exec.Setpos(static_cast<int>(f));

    Surtout (static_cast<int>(f)); car je sais ce que ca fait mais je ne sais pas l'utulisé et dans quel cas en gros son fonctionement et je n'ai malheureusement pas trouver d'informations dessus.

    Merci pour tous les gars grace a vous je peut progresser plus rapidement !

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 28
    Par défaut
    personne pour donner une petite explication a ma question ??

Discussions similaires

  1. progress bar en c++
    Par boulette&co dans le forum MFC
    Réponses: 1
    Dernier message: 23/05/2005, 08h26
  2. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  3. [MFC]Changer la couleur d'un progress bar
    Par Deedier dans le forum MFC
    Réponses: 1
    Dernier message: 21/04/2005, 18h39
  4. [VB.NET] Mise en place d'une progress bar
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 14
    Dernier message: 19/10/2004, 09h23
  5. Progress bar au boot
    Par saibe dans le forum Administration système
    Réponses: 2
    Dernier message: 18/08/2003, 10h01

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