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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 38
    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 : 38
    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 : 38
    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 : 38
    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 )

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