begin process at 2012 05 28 13:39:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Barre de Progression et Boite de Dialogue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Barre de Progression et Boite de Dialogue

mercredi 13 septembre 2006 à 16:30:29 | Barre de Progression et Boite de Dialogue

by_rabbit_08

Bonjour! Je désirerais créer une ProgressBar dans une boite de dialogue. Mais voilà, il ne me semble pas que cela soit possible de déclarer une barre de progression dans un fichier ressource. Donc est-ce que je me trompe? Si oui, lequel? Et si non, est-ce qu'il y a une possibilité? Faudrait-il la dessiner? Et si oui, comment dessiner dans une boite de dialog :S j'ai cherché par tous les moyens, je ne m'en sors pas... Quelqu'un aurait-il une idée? :o
Merci
mercredi 13 septembre 2006 à 16:57:46 | Re : Barre de Progression et Boite de Dialogue

racpp

Administrateur CodeS-SourceS
Salut,
Les éditeurs de ressources permettent bien de mettre une progressbar dans une boite de dialogue. Voici un extrait d'un fichier rc réalisé avec VC6:
IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 186, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,129,7,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,129,24,50,14
    CONTROL         "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,
                    39,51,111,14
END


Pas besoin non plus de la dessiner. CreateWindow() permet de la créer pendant le traitement du message WM_INITDIALOG:
CreateWindow(PROGRESS_CLASS, WS_CHILD .....
Il ne faut pas oublier d'initialiser la librairie des common controls en chargeant la dll comctl32.dll avec LoadLibrary() ou tout simplement en utilisant InitCommonControls(). Le fichier commctrl.h est à ajouter aux includes.

mercredi 13 septembre 2006 à 17:02:30 | Re : Barre de Progression et Boite de Dialogue

by_rabbit_08

Ok merci, j'ai réussi à avoir quelque chose d'affiché :D!
Mais maintenant, tu dis que je dios la créer avec CreateWindow, mais est-ce que je le fais avec CreateWindow, ou bien comme tu l'as mis plus haut avec le CONTROL?
Ou est-ce que je gère "tous les combiens j'affiche tant" par exemple, je sais pas si c'est explicite... Au pire, il n'y a cas me demander des explications
Merci beaucoup en tout cas!
mercredi 13 septembre 2006 à 17:14:22 | Re : Barre de Progression et Boite de Dialogue

racpp

Administrateur CodeS-SourceS
A toi de choisir. Soit utiliser le script de ressources, soit la créer avec CreateWindow(). Personnellement, je n'utilise que CreateWindow(). Pour gérer la progressbar, on envoie des messages avec SendMessage() à son HWND:
PBM_SETRANGE : pour définir les marges
PBM_SETPOS : pour modifier la position.
Tous les détails sont dans la MSDN.

mercredi 13 septembre 2006 à 17:52:51 | Re : Barre de Progression et Boite de Dialogue

by_rabbit_08

Alors enfait, j'ai opté pour la 2ème solutions que tu m'as conseillé, c'est-à-dire, avec CreateWindow(), donc ca donne ca, dans la procédure de la boite de dialogue:
HWND progress_bar;
...
case WM_INITDIALOG:
      InitCommonControls();
      progress_bar = CreateWindow(
                 "PROGRESS_CLASS",
                 (LPSTR) NULL,
                  WS_CHILD|WS_VISIBLE,
                  0, 0, 385,25,
                  hDlg2,
                  (HMENU)ID_PROGRESS1, //id de la progresbar, déclaré en haut
                   hinstance2,
                   NULL);

     
      return FALSE;
...


Est-ce que ça ne devrait pas s'affichier en ayant mis ca? Ca ne s'affiche pas, je comprends pas pourquoi :S
Si tout devrais marché, quelle erreurs pourrait-il y avoir?
Merci d'avance

mercredi 13 septembre 2006 à 18:34:01 | Re : Barre de Progression et Boite de Dialogue

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Regarde dans mon exemple, PROGRESS_CLASS est sans les guillemets. Avec les guillemets tu peux utiliser "msctls_progress32".
InitCommonControls() doit être placé de préférence au début du WinMain. Personnellement je fais:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE ......
HINSTANCE hCmLib= LoadLibrary("comctl32.dll");
//... lancement de la boite de dialogue etc...
FreeLibrary(hCmLib);
return 0;
}



Cette discussion est classée dans : barre, boite, progression, dialogue, oui


Répondre à ce message

Sujets en rapport avec ce message

Comment inserer une barre d'outils dans une boite de dialogue [ par Lady ] merci Barre horizontale de boite de dialogue [ par Vortex99011 ] Je voudrais savoir comment créer une barre horizontale dans une boite de dialogue. Update de l'affichage de plusieurs fenêtres [ par by_rabbit_08 ] Bonsoir!J'aurais une petite question! J'ai créé un programme qui pendant un certain temps gère des caractères et les modifie, pour du cryptage. Donc p communication avec une boite de dialogue fille [ par yag00 ] bonjourj'ai une boite de dialogue qui contient un control progressbar. je veux que la barre de progression s'incremente et ferme la fenetre une fois a Le programme ne répond pas. [ par mohdaef ] Bonsoir.J'ai fait un petit programme en boite de dialogue dans lequel, lors d'un appui sur un bouton une fonction est lancée. Cette fonction contient Comment transmettre variable d'une boite de dialogue a la vue? [ par Slown ] Bonjour a tous! j'au un probleme: j'ai créé une fenetre avec un CEdit et un button; ce bouton m'affiche une boite de dialogue avec elle aussi un Cedit Image de fond Boite de dialogue MFC [ par Caleos ] Bonjour, voilà j'ai remarqué que beaucoup de sujet a propos de mon probleme ont été posé mais aucun d'eux ( ou je n'ai vraiment pas fait attention) ne Afficher mon image ds ma boite de dialogue [ par moumoucha ] Bonsoir;est ce ke kelk'un a une idée sur comment afficher une image dans une boite de dialogueSVP,j'ai besoin d'un code en c++.Je suis vrmnt blokée ;a boite de dialogue avec visual c++ [ par romanticide ] Bonjourje voudrais ouvrir une boite de dialogue pour afficher les règles de mon jeu (l'utilisateur fait un clic droit puis sélectionne règle ce qui ou Problème utilisation GetWindowInfo [ par thorodin ] J'utlise visual studio, et je crée une boite de dialogue avec un bouton, quand un évènement se produit sur ce bouton, je voudrais modifier la taille d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales