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

Windows Discussion :

ProgressBar en c++


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut ProgressBar en c++
    Bonjours,

    Je debute en c++ , et je voudrais savoir comment on fait pour faire une ProgressBar sous Dev-c++. Je ne sait meme pas ou l'appeler et tout se qui sans suit XD .

    Donc si quelqu'un pourrait m'aider se serait sympa.

    Je vous depose mon code .

    fichier main.cpp :
    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
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    #include <windows.h>
    #include <mmsystem.h>
    #include <iostream>
    #pragma comment( lib, "winmm.lib" )
    #include <Wininet.h>
    #pragma comment(lib,"Wininet.lib" )
    #include "main.h"
    
    typedef int (*TestNetFunction) (int);
    typedef int (*TestDLLFunction) (int);
    
    typedef BOOL (WINAPI *PF_INETGETCONNECTEDSTATE)(LPDWORD, DWORD);
    
    using namespace std;
    
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
        int Chargement();
        BOOL bConnected;
        DWORD dwFlags;
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (hThisInstance, "ICON");
        wincl.hIconSm = LoadIcon (hThisInstance, "ICONE");
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Fenètre de chargement et de vérification des données ...",       /* Title Text */
               WS_OVERLAPPED, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               591,                 /* The programs width */
               530,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        int sound;
        sound = PlaySound("Demarage.wav", hThisInstance, SND_ASYNC);
        ShowWindow(hwnd, nFunsterStil);
        
        
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
    
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
            HINSTANCE hinstDLL;
            static HBITMAP hbitmap; // pour le bitmap 
    
        switch (message)                  /* handle the messages */
        {
               
               
           case WM_PAINT: 
               HDC hdc;
               HDC hdcMemory; 
               HFONT Font;
               PAINTSTRUCT ps; 
               hdc=BeginPaint(hwnd,&ps); // obtient un handle de contexte de périphérique 
               int Text;
               
               
               BITMAP bm; 
               hbitmap=(HBITMAP) LoadImage(NULL,"Demarage.bmp",IMAGE_BITMAP,0, 0,LR_LOADFROMFILE); 
               hdcMemory=CreateCompatibleDC(NULL); 
               SelectObject(hdcMemory,hbitmap); 
               GetObject(hbitmap,sizeof(bm),&bm); 
    
               BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hdcMemory,0,0,SRCCOPY); 
               
               SelectObject(hdc, (HGDIOBJ) Font); //Utilise cette font créee pour les TextOut qui suivent
               SetBkColor(hdc, RGB(255,0,0)); //Ecrit le texte sur un fond rouge.
               
               //Verification de la presence des fichier *.dll
               Text = TextOut(hdc, 10, 10, " Chargement des fichiers   *.dll ", strlen(" Chargement des fichiers  *.dll "));
               PresenceDLL();
               DeleteObject(Font);
               
               //test de la connection internet
               Text = TextOut(hdc, 10, 10, " Test de la connection internet              ", strlen(" Test de la connection internet          ")); // Idem
               InternetFunction();
               DeleteObject(Font);
               
                          
               Text = TextOut(hdc, 10, 10, " Ouverture  de  Racourci  Fsx    ", strlen(" Ouverture  de  Racourci  Fsx  ")); // Idem
               Sleep(2000);
               DeleteObject(Font);
                        
               DeleteDC(hdcMemory); 
                         
               EndPaint(hwnd,&ps); // libère un handle de contexte de périphérique 
                         
               Sleep(5500);
               PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
               return 0; 
    
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    
    //Test de la connectiviter internet
    HINSTANCE hinstDLL;
    
    void InternetFunction()
    {
                      //Chargement de la dll de test de connection 
                      TestNetFunction TestNet(0);
                      hinstDLL = LoadLibrary("TestNet.dll");
                      if(hinstDLL != 0)
                      {
                              TestNet = (TestNetFunction)GetProcAddress(hinstDLL, "TestNet" );
                      }
                      if(TestNet == 0) {};
                      int AM = TestNet(5);
                      if(AM == 5)
                      {
                      }
                      FreeLibrary(hinstDLL);
                      
    };
    
    //test la presence des fichiers *.dll
    void PresenceDLL()
    {
                      TestDLLFunction TestDLL(0);
                      hinstDLL = LoadLibrary("TestDLL.dll");
                      if(hinstDLL != 0)
                      {
                              TestDLL = (TestNetFunction)GetProcAddress(hinstDLL, "TestDLL" );
                      }
                      if(TestDLL == 0) {};
                      int DLL = TestDLL(5);
                      if(DLL == 5)
                      {
                      }
                      FreeLibrary(hinstDLL);
    };
    Fichier Main.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define ID_ICON
    #define SND_ASYNC    1
    #define INTERNET_CONNECTION_OFFLINE 2
    
    void InternetFunction();
    void PresenceDLL();
    Fichier Ressource.rc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ID_ICON ICON MOVEABLE PURE LOADONCALL DISCARDABLE "C:/Dev-Cpp/Icons/Rfsx.ico"
    ICONE ICON "C:/Dev-Cpp/Icons/Rfsx.ico"
    Voila merci d'avance pour votre aide.

    comi512

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Je viens de regarder a l'instant et je ne vois vraiment pas ou je peux l'integrer dans mon code si-dessus.


  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Traite le message WM_CREATE.

    Et n'oublie pas d'initialiser avant (InitCommonControlsEx()).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    j'ai essaye mais sa me donne une erreure de compilation .

    Le compilateur me dit : " invalid conversion const char* ..."

    donc voila

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Problème de TCHAR peut-être?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    surement mais comme je debute je fait comment pour remedier a se probleme ?

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Déjà, c'est mieux qu'à chaque modification du code, tu postes le code complet. TCHAR, c'est le type de caractères utilisé par les exemples de MSDN. Il s'agit en fait d'un typedef de char ou de wchar_t en fonction des réglages de ton projet. La manière d'effectuer ces réglages est expliquée ici. De plus, Médinoc a supposé, d'après le message d'erreur, que le problème vient de là mais on ne peut être vraiment sûr étant donné que tu n'as pas posté ton code complet. Il y a également un exemple d'utilisation des progress bar ici, ce qui pourrait t'aider pour débuter mais cela ne remplace pas la documentation officielle.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    De plus, j'ai déjà posté de nombreux messages sur les questions de TCHAR. Fais une recherche.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [MFC] afficher une ProgressBar dans une barre d'etat
    Par guillaume21 dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2007, 11h16
  2. ProgressBar style XP
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/11/2003, 09h36
  3. comment programmer une progressbar
    Par Choucas dans le forum Paradox
    Réponses: 3
    Dernier message: 13/11/2002, 11h07
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  5. Couleur de ProgressBar
    Par benj63 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 17h33

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