Barre de progression TOUTE SIMPLE sous [Dev-Cpp] >_>! [Résolu]

Signaler
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
-
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
-
Bonjour!

Alors voila, je travaille sous Dev-cpp, et j'aimerais simplement réussir a créer une barre de progression.

J'ai cherché sous cppfrance, et je ne trouve que des programmes ultras
complexe, avec pleins de fichiers source que je n'arrive pas compiler,
etc.. ^^ galèèèère koi...



Donc imaginer une simple fenetre avec un bouton. Lorsque on clique sur
le bouton, la barre de progression se remplis et termine le programme.

Je ne demande pas encore qqch qui interagit avec une copie de fichiers
qqch comme ca, je désire pour l'instant juste réussir a faire qqch du
style. >_>!

Celui qui arrive a me faire ca, est pour moi quelqu'un de super cool,
vu qu'il prends un peut de temps pour un apprenti-apprenti-apprenti...
Merci bcp d'avance!!

by_rabbit_08 >_>! >_>! >_>!

14 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Alors il y a la solution CreateWindowEx avcec comme class PROGRESS_CLASS
Pour mettre une position particulier : SendMessage(hPbm, PBM_SETPOS, Pos, 0);
Pour mettre augmentaire d'une valeur step : SendMessage(hPbm, PBM_STEPIT, 0, 0);
Pour changer le step : SendMessage(hPbm, PBM_SETSTEP, Step, 0);

Pour découvrir plein de chose : Google : PBM_SETSTEP msdn et voila :)

La deuxieme solution, c'est tout dessiné comme dans un code qu'on trouve ici : CONTROL PLUS par Dr Progz ( j'arrête pas de le citer lui lol )


void Aurevoir( void ); //Bonne journée
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Pour mettre augmentaire d'une valeur step
En français ça donne : Pour augmenter la position selon la valeur de Step


void Aurevoir( void ); //Bonne journée
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
1
Merci d'avoir répondu, mais j'ai fais comme tu m'as dit, mais elle ne s'affiche pas... :(

Voilà donc ce que j'ai précisément mis dans WM_CREATE (?):



static HWND progress; //déclaration



//je créer ma barre avec createWindowEx



progress = CreateWindowEx(0,

"PROGRESS_CLASS",

(LPSTR) NULL,

WS_CHILD|WS_VISIBLE,

205, 200, 385,25,

hwnd,

(HMENU)0,

hThisInstance,

NULL);






SendMessage(progress, PBM_SETRANGE, 0, MAKELPARAM(0, 100));

SendMessage(progress, PBM_SETSTEP, (WPARAM) 1, 0);



Après tout cela, rien ne s'affiche, je ne comprends pas pk... >_>!

Merci d'avance!
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
J'ai oublié le principal !!!
C'est bête que même lol

#include <commctrl.h>

et au linker tu rajoutes libcommctl32.a un truc comme ça quoi ca doit ressembler à ca ;)
Et dans WM_CREATE au tout début tu nous fais un ptit InitCommonControls();
et normalement tu verras ta jolie barre !

Par contre un soucis, j'ai pas réussi à la faire marcher moi lol...


void Aurevoir( void ); //Bonne journée
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Et aussi, on ne déclare pas de variable dans un case de switch.
Faut le faire au début de ta procédure ;)


void Aurevoir( void ); //Bonne journée
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
1
Ouais, je reçois un message [Build Error] :S, un truc de fou sans explication... lol

Je comprends pas...
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
T'as bien linker la bonne librairie ????


void Aurevoir( void ); //Bonne journée
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
1
Ben oui, là, j'en suis sur... Ca devient bizar tout ca... mais bon
tampis, je vais parcourir bien tout le code que tu m'as dit, control
plus... mais merci bien!!

>_>!
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Fou ton projet sur un site avec tous les fichiers qui vont avec j'vé voir ça ;)


void Aurevoir( void ); //Bonne journée
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
1
Mais enfait, j'ai pas vraiment de projet, je voulais plutot essayer de
le faire pour peut-être plus tard faire un projet, mais simplement ce
que je voulais, c déja d'afficher une barre, et plus tard, essayer de
faire qqch de concret...

tu vois le genre... ^^
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Bah ouai mais bon sous DevC++ t'es obligé de crée un projet Application Windows pour faire une barre de progression...


void Aurevoir( void ); //Bonne journée
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
1
Ouais, mais bon, c'est tout vite fais... ^^





//#########################################################33

#include <windows.h>



/* 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 */



/* 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 (NULL, IDI_APPLICATION);

wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);

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 */

"Windows App", /* Title Text */

WS_OVERLAPPEDWINDOW, /* default window */


CW_USEDEFAULT, /* Windows decides
the position */


CW_USEDEFAULT, /* where the window
ends up on the screen */


544,
/* The programs width */


375,
/* 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 */

ShowWindow (hwnd, nFunsterStil);



/* Run the message loop. It will run until GetMessage() returns 0 */

while (GetMessage (&messages, NULL, 0, 0))

{

/* Translate virtual-key messages into character messages */

TranslateMessage(&messages);

/* 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)

{

switch
(message)
/* handle the messages */

{

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;

}





//##############################################



et voila...
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ah mé nonnnnnnn lol t'as rien compris
Ton projet à toi pas celui par défaut... Fin bref c'est juste pour vérifier si ta bien linker etc...
Au pire colle ton code ici...


void Aurevoir( void ); //Bonne journée
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
15 mai 2007
1
Ah ok!!! j'ai compris...^^ Ouais, mais bon, j'ai encore rien vraiment
fait, ptetr je vais commencer ce soir, en tout cas merci encore!