begin process at 2008 08 21 05:27:55
1 229 221 membres
52 nouveaux aujourd'hui
14 260 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TUTORIAL WIN32 :


Information sur la source

Catégorie :Tutoriaux Niveau : Débutant Date de création : 31/05/2004 Date de mise à jour : 09/09/2005 00:09:03 Vu / téléchargé: 17 710 / 4 192

Note :
9,72 / 10 - par 25 personnes
9,72 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (85)
Ajouter un commentaire et/ou une note

Description

Suite aux conseils ;  j'ai mis toutes les  parties dans le meme zip
et continuerai par des mises a jour

Sommaire actuel :

                 1) Création d'une fenêtre windows simple.
                                    
                 2) Création d'un menu
            
                   - a) Menu déroulant (Pop Up)
                
                   - b) Menu non déroulant (non Pop Up.)
                    
                   - c) Menu créé sans fichier ressource.
                            
                 3) Le "Device Contexte" (DC)
            
                   - a) Afficher du texte dans une fenêtre.

                  -  b) Dessiner dans une fenêtre.
                                  (Etude d'un projet : une horloge analogique.)

                  - c) Dessiner dans une fenêtre (Les principales fonctions.)

                  - d) Chemin et decoupe

                  4) Boites de dialogue et contrôles.
                  
                    a) Fenêtres enfants et contrôles BUTTON, STATIC et EDIT.

                    b) Boites de dialogues, contrôles SCROLLBAR et LISTBOX
                                
                     5) Gestion du clavier et de la souris
            
                     a) Gestion du clavier et déplacement de la vue dans
                         une fenêtre (Styles  WS_VSCROLL et WS_HSCROLL)

                          b) Les accélérateurs de clavier.

                          c) Accélérateur clavier créé sans fichier ressource.
                                
                          d) Le signe d'insertion (caret).

                          e) La souris.

                    

********************************************************************************************  

Toutes les parties sont dans des zips séparés.

Mise à jour  du 7 Juin 2004 : - Modification des commentaires des parties 1, 2a, 2b, 2c.

                              - Ajout sur la partie 3a (Modes de tracés)

Mise à jour du 14 Juin 2004 : - Ajout de la partie 3b.

Mise à jour du 30 Juil 2004 : - Ajout de la partie 3c.

Mise à jour du 20 Oct 2004  : - Ajout de la partie 4a.

Mise à jour du 06 Déc 2004  : - Ajout de la partie 4b.

Mise à jour du 22 Déc 2004 : - Modification des commentaires des parties 2a et 2b.
                               (Explications sur l'initialisation d'un menu.)

Mise à jour du 19 Janv 05 : - Ajout de la partie 5a.

Mise à jour du 26  Janv 05 : - Ajout des  parties 5b et  5c.

Mise à jour du 04 Fév 05 : - Ajout partie 5d et ajout d'un chapitre qui contiendra à terme plusieurs
                                                parties et traite de win32 avec l' utilisation de classes (Le . zip est nommé :
                                                Classe.zip; la première partie reprend la création d'une fenêtre simple.)


Mise à jour du : 09 Fév 05 : - Le fichier étant trop gros, j'ai reporté toute la partie 6 dans le code
                                             Tutorial Win 32  2ème partie. Afin de conserver de la place
                                              pour les mises à jour que j'aurais à faire sur la première partie,
                                                 (gestion de la souris ...)

Mise à jour du 29 Avr 05 : - Ajout partie 5e et ajout dans la partie 5a de la fonction keybd_event.

Mise  à jour du 09 Sept 05 : Ajout partie 3d.



Conclusion

Prochaine mise a jour dans cette source : Region et decoupe
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Classe.zipTélécharger ce fichier [Réservé aux membres club]20 335 octets
  • Sommaire.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 717 octets
  • Tutor_Win_32_Part_2a.zipTélécharger ce fichier [Réservé aux membres club]25 276 octets
  • Tutor_Win_32_Part_2b.zipTélécharger ce fichier [Réservé aux membres club]24 912 octets
  • Tutor_Win_32_Part_2c.zipTélécharger ce fichier [Réservé aux membres club]17 839 octets
  • Tutor_Win_32_Part_3a.zipTélécharger ce fichier [Réservé aux membres club]31 464 octets
  • Tutor_Win_32_Part_3b.zipTélécharger ce fichier [Réservé aux membres club]32 312 octets
  • Tutor_Win_32_Part_3c.zipTélécharger ce fichier [Réservé aux membres club]49 283 octets
  • Tutor_Win_32_Part_3d.zipTélécharger ce fichier [Réservé aux membres club]21 281 octets
  • Tutor_Win_32_Part_4a.zipTélécharger ce fichier [Réservé aux membres club]43 811 octets
  • Tutor_Win_32_Part_4b.zipTélécharger ce fichier [Réservé aux membres club]62 769 octets
  • Tutor_Win_32_Part_5a.zipTélécharger ce fichier [Réservé aux membres club]31 790 octets
  • Tutor_Win_32_Part_5b.ZIPTélécharger ce fichier [Réservé aux membres club]21 422 octets
  • Tutor_Win_32_Part_5c.zipTélécharger ce fichier [Réservé aux membres club]17 095 octets
  • Tutor_Win_32_Part_5d.zipTélécharger ce fichier [Réservé aux membres club]21 283 octets
  • Tutor_Win_32_Part_5e.zipTélécharger ce fichier [Réservé aux membres club]18 943 octets
  • Tutor_Win32_Part_1.zipTélécharger ce fichier [Réservé aux membres club]25 526 octets

Télécharger le zip

05 août 2004 00:16:24 :
20 octobre 2004 23:22:58 :
20 octobre 2004 23:30:53 :
10 décembre 2004 11:38:37 :
10 décembre 2004 11:49:38 :
22 décembre 2004 09:59:20 :
19 janvier 2005 23:07:01 :
26 janvier 2005 22:20:35 :
04 février 2005 22:03:10 :
05 mars 2005 22:17:42 :
08 mars 2005 23:21:28 :
24 mars 2005 23:11:49 :
09 avril 2005 21:32:08 :
29 avril 2005 15:18:03 :
09 septembre 2005 00:09:05 :
Ajout partie 3d : Chemin et decoupe.
  • signaler à un administrateur
    Commentaire de Xs le 01/06/2004 23:27:00

    J'ai une idée : je vais poster ma prochaine source (elle sera grosse) en plusieurs sous-sources comme ca ca fera péter mon compteur de sources, même si ca sert a rien.

    Ah je me suis trompé d'endroit pour le dire ? Je suis pas sur msn la ?
    Mince....

    Plus serieusement, evite de faire 300 sources différentes pour je ne sais qu'elle raisons : toute les 3-x et y-x tu les regroupes en une seule ! Tu pourrais même faire patienter un peu et tout regrouper dans une SEULE. Tellement plus pratique....

  • signaler à un administrateur
    Commentaire de Urgo le 02/06/2004 00:05:10

    C'est vrai que la partie 2 aurait pu etre regroupé dans un meme fichier zip, tout en montrant trois parties distinctes à l'intérieur.

  • signaler à un administrateur
    Commentaire de errikke le 02/06/2004 19:49:35

    eh oui, vous avez raison ; pourquoi perdre son temps, alors que dehors les arbres poussent
    et les filles sont belles!

    Plus serieusement, je  vais arreter ici ... mais pour une raison evidente ...

  • signaler à un administrateur
    Commentaire de Xs le 02/06/2004 19:55:28

    Tss faut pas se vexer ! Tes tutoriaux sont très bien et respectent bien l'idée du site. C'etait une remarque sans importance : j'aime dire ce que je pense.

    Il ne faut pas tout prendre à la lettre !

    Cordialement.

    ps : on attend tous avec impatience teS futures sources !

  • signaler à un administrateur
    Commentaire de Funto66 le 05/06/2004 11:57:19

    Aïe, j'avais peur que tu t'arrêtes, je l'avais déjà dit dans un des 1ers msg du 1er tutorial...
    J'espère juste que tu vas pas finir comme ça ^^

  • signaler à un administrateur
    Commentaire de Urgo le 05/06/2004 21:05:30

    Si tu n'acceptes meme pas ma remarque qui a été tout à correcte et pas du tout désobligeante, c'est en effet pas mal la peine de continuer. Ce n'est pas parce-que tu n'as pas de note ou que je ne parle pas de ton source, que cela veut dire que je rejette ton travail.

    Continu (pour les autres au moins), ça leur fait plaisir même s'ils ne l'expriment pas dans directement dans les commentaires ou une note.

  • signaler à un administrateur
    Commentaire de errikke le 07/06/2004 07:46:17

    Urgo ->  Je te prie de m'excuser ; simplement tu est tombe sur un mauvais jour ou tout le monde
    me renvoyait dans les cordes ... au boulot, a la maison .., et meme sur CPPFRANCE.
    Je vais continuer et meme prendre en compte ta remarque ; je procederais maintenant par mise a jour.
    simplement, je suis oblige de continuer sur plusieurs parties (cette fois dans le meme zip) pour ne
    pas avoir des codes ingerable ou je n'ai meme pas la place sur l'ecran d'afficher tous les exemples.
    A+

  • signaler à un administrateur
    Commentaire de Urgo le 11/06/2004 21:18:14

    J'suis content que le message soit passé ;)
    Merci de ta compréhension

  • signaler à un administrateur
    Commentaire de wolfcyber le 14/06/2004 20:24:39

    Pas mal ce tutorial, 8/10

  • signaler à un administrateur
    Commentaire de arouche le 23/06/2004 17:09:42

    Débutant en C++, mais question va peut etre paraitre conne pour certain, mais quel type de projet faut il créer ??

  • signaler à un administrateur
    Commentaire de Funto66 le 23/06/2004 22:39:54

    Avant de poser ce genre de questions, dis quel est ton environnement de dév.
    Pour Visual C++ : Win32 Application
    Pour Dev-C++ : Windows Application.

  • signaler à un administrateur
    Commentaire de detlev le 13/08/2004 21:05:52

    salut,
    c bien chouette tout ca ! mais comment fait-on pour creer un simple bouton avec l'api win32 ?
    on parle toujours d'opengl et de directX mais un simple bouton ou un label je ne trouve pas de tuto.
    vous pouriez m'aider ?
    ps: un bon livre ca va aussi.

  • signaler à un administrateur
    Commentaire de Bebert251188 le 14/08/2004 17:02:10

    slt
    g telechargé ce tuto, il est vraiment bien(pour le peu que g deja lu) (et aussi vraiment long !!!)
    mais , g devC++ et qd je compile les parties ou lon cré des menus (deroulants et pas)
    et bien il arrive a le compiler mais lorsqu'il se lance , je vois la fenetre , mais un msg me dit de supprimer des fichiers : *_private.h et .rc
    que je ne trouve pas, pourriez vous m'aider?
    merci d'avance

  • signaler à un administrateur
    Commentaire de errikke le 31/08/2004 09:37:27

    --> detlev : Je n'ai pas encore aborde les boites de dialogues (bouton...) qui feront l'objet de la
    prochaine partie.

    --> Bebert251188 : Quand tu ouvre un projet ; il faut selectionner dans la boite de dialogue  en liste
    deroulante nommee Type,  l'option All Files(*.*)  ainsi tu verras tous les fichiers (dont les private_) tu
    peut les supprimer avec un click droit sur le nom du fichier.

    Pour aller plus vite ; tu peut recuperer le livre de Charles PETZLOD sur le site de Brunews.

  • signaler à un administrateur
    Commentaire de jaco_2004 le 02/09/2004 04:45:45

    Salut Errikke,

    Je suis debutant en programation Windows sous C++. Eleve ingenieur en mecanique, je suis actuelement en stage dans une universite dans le Colorado et mon sujet de stage est la programation d'un logiciel d'analyse de contrainte. Ce logiciel doit etre programme en C++, et integrer une interface Windows...

    Je me suis pas mal documente sur internet sur le sujet avant de me lancer dans la bagarre, et c'est ton tuto que j'ai choisi pour debuter !

    Il est clair, complet (enfin pour un debutant comme moi), pedagogique...

    Voila, c'etait juste pour te remercier, et par la meme remercier les administrateurs de ce site. Bon, et puis comme je viens de commencer et que j'en ai pour cinq mois de programmation (ce qui n'est pas mon dada normalement), je sens que je vais faire appel a vous dans pas longtemp pour resoudre mes problemes de programmation !

    Donc ca fait pas de mal de vous passer un peu de pommade :)

    Allez, je m'arrete la,

    ciao,

    Jaco

    P.S.: exusez-moi pour les accents, les cedilles et compagnie mais les claviers qwerty... enfin vous savez.

  • signaler à un administrateur
    Commentaire de errikke le 21/10/2004 19:55:51

    Pour ceux qui ont rencontre un pb dans la partie 2a avec le menu :
    Je pense avoir trouve la solution .

    Il faut  remplacer dans le fichier .rc
    la ligne : 500 MENU DISCARDABLE
    Par : ID_MENU MENU DISCARDABLE

    Merci de me dire si cela marche; je ferais une mise a jour.

  • signaler à un administrateur
    Commentaire de Silverd le 27/10/2004 15:23:51

        Bonjour, je suis un jeune programmeur en C et en C++ et veritable débutant pour la création de fenêtre avec win 32.
    Ce tutorial a l'air très bien expliquer et j'espère pas trop dur à comprendre pour moi :)

    Mais j'ai quand même un petit problème pour ce tutorial :
          Aucune source ne veut bien compiler
    (alors que les exécutable fournit dans le zip marche très bien)
    Par exemple pour la partie 4a, le compilateur ne trouve pas la fonction _itoa() utilisé pour la première fois à la ligne 2365 !
    Donc si quelqu'un peut m'aider , ba il est le bienvenu :)

    ps : j'utilise dev c++ v4 , si ca peut aider à la compréhension du problème :-D

  • signaler à un administrateur
    Commentaire de Propheus le 05/12/2004 18:45:46

    Hello :)

    Je trouve le tuto très intéressant, c'est ce qu'il me fallait pour bien aborder le contexte de fenêtres en C++ (me suis taper beaucoup en mode console).

    Toute fois trois critiques qui aura le mérite de rendre ça un peu plus paufiné:

    - Placer toutes la partie théorique en commentaire c'est vraiment moyen moyen, ça rends le code à proprement parlé très indigeste, et le compilateur perd un peu de temps à trier tout ça.

    - J'ai la version DevC++ pareil que celle que tu as utilisée, je viens de finir la première partie et elle ne se compile pas. Beaucoup de références introuvables, je pense qu'il me faut encore faire quelques règlage sur le compilateur et mes connaissances à ce niveau.

    - Et finalement, Aujourd'hui l'ont parle encore du C++ avec des strucs et autres pratiques "à la vielle école", je trouve ça dommage, encapsuler tout ça dans une classe aurait été très enrichissant et à la pointe du C++ orienté objet.

    Je sais que pour le coté POO c'est presque un autre tuto, mais je trouve que l'ont voit encore trop de source avec un tas de strucs, sans implémentation orienté objet, et ceci en parlant de C++. Je sais que l'ont peux faire du C++ sans forcément utiliser l'orienté objet à 100%,mais c'est dommage de ne pas vivre avec notre temps.

    Avis perso, ça n'enguage que moi.

  • signaler à un administrateur
    Commentaire de Funto66 le 05/12/2004 22:07:50

    D'un autre côté, un tutoriel destiné aux débutants et qui de plus ne doit expliquer que l'API Windows, qui est en C, je trouve normal qu'il reste avec les vieilles pratiques...
    Pour la compréhension, on ne rajoute pas de choses inutiles.

    C'est mon avis.

  • signaler à un administrateur
    Commentaire de errikke le 06/12/2004 09:42:07

    --> Propheus : Tu as effectivement souligne trois points qui m'ont pose probleme
    des le debut.

    - L'encapsulation  des donnes sous forme de classe m'a tente des le debut, toutefois, je ne
    souhaitais pas reinventer les MFC (Il faudrait d'ailleurs etre plus doue que je ne le suis), c'est
    pourquoi, j'ai prefere me contenter d'une utilisation "vieillotte" de l'API. J'ai prevu de
    "deriver" vers les classes au fur et a mesure de mes parties, mais pas avant d'avoir fini
    les  bases, c a d le systeme de fichier, les icones et bitmaps et une premiere approche du
    multithreading.

    - Les commentaires : J'ai adopte la methode suivante ; toutes les premieres parties sont
    commentes au fil du code, puis petit a petit , quand le lecteur commencera a etre familiarise avec
    l'API, (somme toute les fonctions et messages  fonctionnent tous plus ou moins de la meme
    facon), les commentaires seront regroupes en debut de code. Ce sera d'ailleurs le cas
    de la prochaine partie (boites de dialogue   modale ou non et controles SCROLLBAR et
    LISTBOX), que je pense  poster cette  semaine.

    -Pour les compilateurs, je n'ai pas encore trouve de solution, je ne prevoie pas de tut
    sur le makefile dans l'immediat.


    --> Funto66 : je te remercie pour la constance de ton soutien, alors meme.
    (j'ai vu tes sources) que tu ai largement plus avance que ce que je propose dans
    mon tutoriel.

    Merci a tous deux.

  • signaler à un administrateur
    Commentaire de BruNews le 06/12/2004 10:29:43 administrateur CS

    Salut,

    le titre est pourtant bien clair: "TUTORIAL WIN32".
    Il ne s'agit pas ici de choix de langage mais d'expliquer une API, rien de tel que le C pour faire cela clairement.
    'vivre avec notre temps' ??? en ce cas faut faire du .NET et tu auras une fenetre en 3 clics sur un wizzard sans ecrire une ligne de code.

    ciao...

  • signaler à un administrateur
    Commentaire de Propheus le 06/12/2004 12:29:48

    C'est bon j'ai reussi à compiler. C'étais de ma faute comme je l'avais présenti.

    -> BruNews : Je comprends pas ta réaction l'air "vexé", il me semble que le C++ n'as pas besoin du .Net pour être orienté objet, les MFC sont plus vielles et si tu regarde le magnifique Framework du .NET, ben ils ont beaucoup été piocher dans les MFC.

    Mais bref c'est pas le problème, je voyais pas ce tuto en MFC, ni en .NET, avec une simple encapsulation pour donner l'idée. C'est sur que ça sert à rien de réinventé la roule MFC ou .NET, ici on est là pour apprendre et pour enseigner du mieux que l'ont peux. Mais je comprends tout à fait le malaise, c'est la guerre des pros C et pro C++ OO, c'est tout rien de plus :)

  • signaler à un administrateur
    Commentaire de BruNews le 06/12/2004 12:44:38 administrateur CS

    non rassure toi, je ne voulais pas d'air 'vexé', juste faire comprendre que dans un tuto sur l'API, si le lecteur doit aller chercher où est caché le hwnd et se ballader entre 36 fichiers h et cpp pour retrouver ses petits, c'est des coups a faire fuir le debutant auquel un tuto doit s'adresser, rien de plus dans mes propos.

  • signaler à un administrateur
    Commentaire de angeljp le 10/12/2004 17:35:49

    Alors là franchement je dis bravo !!!
    Moi qui ne savait pas du tout comment faire apparraître une fenêtre windows toute simple ya deux semaines, je peux maintenant faire une fenêtre avec tout ce qu'il faut !
    Ce tutorial est certainement le meilleur que j'ai pu voir jusqu'à maintenant sur les API.
    Encore Bravo et continue comme ça errikke !

  • signaler à un administrateur
    Commentaire de The_Sin le 22/12/2004 14:36:21

    Chez moi quand j'essaye de compiler ton tuto il me dit ça : undefined reference to `CreateSolidBrush@4'
    :'(

  • signaler à un administrateur
    Commentaire de Funto66 le 22/12/2004 15:37:17

    T'as pas dû linker avec la lib GDI...
    Si t'es sous Dev-C++, rajoute -lgdi32 aux options du linker (Propriétés du projet...), si t'es sous Visual C++ rajoute la lib gdi32.lib.

  • signaler à un administrateur
    Commentaire de The_Sin le 22/12/2004 17:56:10

    Merci:)
    Par contre ça me laisse toujours la fenetre msdos derrière

  • signaler à un administrateur
    Commentaire de Funto66 le 22/12/2004 18:44:25

    Ça la fenêtre DOS c'est pas un pb, ça dépend de tex options de compil : si t'es sous Visual C++, cherche l'option "/subsystem:console" et remplace ça par "/subsystem:windows". Si t'es sous Dev-C++, alors dans les propriétés de ton projet, tu chosis Windows application au lieu de Console Application :)

  • signaler à un administrateur
    Commentaire de marik7335 le 11/01/2005 22:52:12

    Franchement, rien à dire
    bravo
    10/10

  • signaler à un administrateur
    Commentaire de quentin2111 le 18/03/2005 23:03:00

    Bonjour,
    ca fait plusieurs semaines que j'apprends les bases en win32 grâçce à tes tuto.Ne t'arrête surtout pas !
    10/10 sans hésiter !

  • signaler à un administrateur
    Commentaire de valeryp le 31/03/2005 13:14:06

    slt ton tutorial est genial ne t'arrete pas la
    10/10

  • signaler à un administrateur
    Commentaire de orc_undead le 04/04/2005 20:03:39

    Bonjours a tous!! Je trouve ton tutorial vraiment super.
    Seulement si je pouvais compiler une de tes sources!!! Voila, mon probleme c'est que je peux ouvrir les .EXE mais je ne peux pas compiler aucune des sources .. Il est donc dificile de comprendre comment sa marche sans pouvoir compiler quoi que se soit!! J'obtien 2 erreur dans le premier tutorial :

    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

    Debug/Tutor_Win32_Partie_1.exe : fatal error LNK1120: 1 unresolved externals

    J'y comprend vraiment rien!! Merci d'avance!!

  • signaler à un administrateur
    Commentaire de marik7335 le 06/04/2005 22:38:41

    Essai de créer un autre projet win32 application et fais un copier coller du code.

  • signaler à un administrateur
    Commentaire de errikke le 07/04/2005 19:44:34

    Sous VC ++ il faut creer un projet Win 32 Application et non Win 32 Console Application.
    L'erreur  LNK2001 peut  avoir diverses causes, mais dans ton cas, je pense que la
    cause est la nature du projet.

  • signaler à un administrateur
    Commentaire de orc_undead le 07/04/2005 21:17:37

    Allo, Jai cree une nouvelle Win32 Application et jai faite un copier - coller du code . Apres avoir compiler, jai obtenu aucune erreur!! Mais il n'y a aucune fenetre qui s'execute au lancement du program.
    Il est ou le problem!!???

  • signaler à un administrateur
    Commentaire de errikke le 09/04/2005 20:47:34

    Le problème que tu évoque a déjà été rencontré par quelqu'un.
    Pour autant que je me rappelle, il avait réglé ce problème
    en ne faisant pas un copier/coller mais en créant un projet et
    en ajoutant directement au projet la (ou les) source(s) voulue(s).

    Je n'ais pas réussi, pour l'instant, à créer ce problème chez moi pour
    pouvoir l'étudier.

    Peut tu modifier le code (il s'agit de la 1ère partie) comme suit :
    autour de la fonction RegisterClassEx().
    (là tu peut faire un  copier/coller.)

    --------------------------------------------------------------------------------------------------------------------------------------
         SetLastError(0);


        if (RegisterClassEx (&wincl) == false) // On enregistre la classe déclarée
                  //   return 0 ;                                   // avec WNDCLASSEX et en cas d'erreur
                                                                        // on quitte le programme
              {                                
              LPVOID lpMsgBuf;
              FormatMessage(
              FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
      FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),
                                          MAKELANGID(LANG_FRENCH, SUBLANG_DEFAULT),
                                           (LPTSTR) &lpMsgBuf,0,NULL );

      MessageBox( hWnd, (LPCTSTR)lpMsgBuf, "Erreur existe ?",
                                          MB_OK | MB_ICONINFORMATION );
      LocalFree( lpMsgBuf );
              }    
              
        else {
        MessageBox(hWnd,"La classe est bien enregistrée, cliquez sur ok pour ouvrir la fenêtre",
                                                "Info de service",MB_OK);
             }
    --------------------------------------------------------------------------------------------------------------------------------------
    Ce bout de code devrait permettre de connaître exactement l'intitulé de l'erreur.

    Merci de me le communiquer.


    A+


  • signaler à un administrateur
    Commentaire de orc_undead le 09/04/2005 21:46:45

    Bonjour, j'ai faite un copier coller de ton code dans le projet qui optenaient les erreurs que jai mentionner puis le compilateur ne compile pas plus.. Ensuite jai essayer de cree un projet win32 application vide puis d'importer ta source du tutorial1 puis toute fonctionnait :). Pour finir .. j'ai essayer un copier coller de toute le code puis de le compiler ... mais cette fois, il n'y a eu aucune erreur puis la fenetre est apparue.. Alors l'important c que maintenant je peux apprendre :)
    Merci d'avoir resolu mon problemme!!
    Bye!

  • signaler à un administrateur
    Commentaire de Raish le 24/04/2005 22:42:26

    Merci, mias merci beaucoup pour ca!!!!! ;)

  • signaler à un administrateur
    Commentaire de KsmoinO le 25/04/2005 11:31:04

    bonjour errikke,

    avant toutes choses, je tiens à te remercier pour ton tutorial que je trouve très utiles!
    je le trouve très cler et assez agréable

    par contre G rencontré un petit problème dans une partie qui m'interressait :

    dans la partie 4.b
    lors de l'exécution sous devc++ 5 le menu ne s'affichait pas :
    pour corriger le problème j'ai fais ceci :
    ligne 1787 : //HMENU hMenu; <= décommenter ceci
    ligne 2130 : remplacer "NULL" par "hMenu"
    entre les lignes 2136 et 2138 : ajouter :
    hMenu = LoadMenu(hThisInstance,MAKEINTRESOURCE(ID_MENU));
    SetMenu(hWnd,hMenu);
    est ce que cette solution te parait correcte et si non, me dire ce que je fais pas bien ou comment m'en passer ;)
    Merci pour tout en tout cas
    J'espère que tu continuera à fournir tes precieux conseils :p
    @ ++

  • signaler à un administrateur
    Commentaire de errikke le 25/04/2005 20:26:22

    Oui, cela me parait correct puisque tu declare un handle sur un menu, tu l'initialises
    dans CreateWindowEx() et enfin tu le charge et tu l'affecte a la fenetre.
    Je pense toutefois que tu peut laisser a la ligne 2130  : NULL, car tu charges le menu
    apres creation de la fenetre.
    Dans ce cas, il faut penser a detruire le menu en fermant (il n'est pas lie a la classe de fenetre.)
    A ce sujet, une question ; qu'as tu mis dans le membre wincl.lpszMenuName de la
    structure WNDCLASSEX ?  

  • signaler à un administrateur
    Commentaire de KsmoinO le 26/04/2005 08:56:51

    dans la structure WNDCLASSEX j'ai laissé :
    wincl.lpszMenuName             =        MAKEINTRESOURCE(ID_MENU);
    et effectivement à la ligne 2130 l'argument peut rester à NULL
    et pour la destruction du menu j'avou que je n'y avais pas pensé, mais maintenant j'ai fais ceci

        // Voir boites de dialogues non modale en début de code.
        while (GetMessage (&messages, NULL, 0, 0))
        {
            if(!IsDialogMessage (hWndModelessDialog, &messages))
         {
            TranslateMessage(&messages);

            DispatchMessage(&messages);
            }
        }
        
        DestroyMenu(hMenu);

    est ce bien à cet endroit qu'il faut le placer ?
    merci
    @++

  • signaler à un administrateur
    Commentaire de errikke le 27/04/2005 21:58:43

    Meme si ta  facon de proceder fonctionne (j'ai verifie), on met toutes les
    fonctions de destructions des menus, objets ...  dans le traitement du
    message WM_CLOSE :

    case WM_CLOSE :
              DestroyMenu(hMenu);
              //...
              DestroyWindow(hWnd);
               break;

    Par ailleurs tu peut laisser  wincl.lpszMenuName = NULL;  puisque tu charges le
    menu apres creation de la fenetre.
            

  • signaler à un administrateur
    Commentaire de kawash le 29/04/2005 18:09:58

    exellent tuto!
    merci

  • signaler à un administrateur
    Commentaire de magma le 30/04/2005 23:51:53


    Salut,

    N'oublie pas de mentionner l'API DrawState(...)
    dans ton tutorial.
    En effet, cette fonction permet d'afficher
    simplement texte, icone ou bitmap dans
    différents modes.

    Bon continuation...

  • signaler à un administrateur
    Commentaire de MoDDiB le 23/06/2005 12:03:41

    Monstrueux ton tuto ! 10/10

  • signaler à un administrateur
    Commentaire de nightlord666 le 04/08/2005 10:27:32

    Bonjour ! Je trouve ton tuto super mais j'ai un problème à la partie 2a : le menu ne s'affiche pas. J'ai essayé ta technique de supprimer les fichiers *_private mais ça ne marche pas. Est-ce que quelqu'un pourrait me dire comment faire ?

  • signaler à un administrateur
    Commentaire de Horfee le 20/08/2005 20:41:32

    Plutot TRES sympa cette suite de tutoriels...
    Par contre, étant donnée que je débute dans le developpement Win32, comment qu'on fait pour ajouter un autre controle non "de base", comme par exemple un equivalent GroupBox, ou encore listview, ou treeview etc docteur ?

  • signaler à un administrateur
    Commentaire de BruNews le 20/08/2005 20:57:02 administrateur CS

    #include <windows.h>
    #include <commctrl.h>

    InitCommonControls();
    ou InitCommonControlsEx(...);
    dès le début de WinMain.

    Ajouter comctl32.lib au linker.

  • signaler à un administrateur
    Commentaire de Horfee le 20/08/2005 21:34:04

    et après svp ??? (I'm just a beginning !!!)

  • signaler à un administrateur
    Commentaire de BruNews le 20/08/2005 21:47:05 administrateur CS

    Regarde dans les sources, il y en a des tas, un exemple ici:
    http://www.cppfrance.com/code.aspx?id=11151
    fouille dans les sources et tu en auras plein d'autres.

  • signaler à un administrateur
    Commentaire de Horfee le 20/08/2005 21:55:06

    hehe la source que tu m'a filé, oui elle repond à mon besoin. Sauf QUE en fait j'aimerais savoir s'il est possible que les controles soient créé comme les autres, cad avec CreateWindowEx(...);

  • signaler à un administrateur
    Commentaire de BruNews le 20/08/2005 22:06:14 administrateur CS

    Bien entendu, CreateWindowEx avec WC_LISTVIEW comme classe de fenêtre.
    MSDN est là pour ce genre de choses:
    http://www.msdn.microsoft.com/library/default.asp

  • signaler à un administrateur
    Commentaire de BruNews le 20/08/2005 22:09:56 administrateur CS

    Autre point, n'oublie jamais qu'une série de CreateWindow(Ex) sera toujours moins rapide à charger qu'un template en ressource, le code C d'un prog user ne pourra jamais rivaliser avec le kernel mode de Windows. Moralité: ne jamais coder inutilement ce que le system sait faire, ol le fera toujours mieux et plus vite.

  • signaler à un administrateur
    Commentaire de Horfee le 20/08/2005 22:12:03

    rha t terrible !!! merci bcp !!!

  • signaler à un administrateur
    Commentaire de Horfee le 20/08/2005 22:27:23

    ah ok ben c bon a savoir...moi qui pensait qu'au contraire ne pas utiliser les fichiers ressources c'était mieux...

  • signaler à un administrateur
    Commentaire de Horfee le 21/08/2005 15:56:39

    une autre question me taraude : pourquoi faut il mettre la fonction WndProc en fonction statique ???

  • signaler à un administrateur
    Commentaire de BruNews le 21/08/2005 16:22:14 administrateur CS

    Toute fonction de rappel (callback) doit avoir une adresse fixe sinon le compilo ne pourrait pas résoudre.

  • signaler à un administrateur
    Commentaire de The_Sin le 05/09/2005 15:44:24

    Lu,
    j'avais mis de côté ce tuto un pti moment maintenant je m'y remet mais je n'arrive plus à compiler même en ajoutant -lgdi32 aux options du projet (j'ai dev cpp 4) est-ce que quelqu'un qui a déjà eu ce problème aurait une autre méthode pour le résoude :s

  • signaler à un administrateur
    Commentaire de errikke le 05/09/2005 20:08:38

    Pourrait tu m'indiquer ce qui ce passe quand tu essaie de compiler, et de quelle partie il s'agit.

  • signaler à un administrateur
    Commentaire de The_Sin le 06/09/2005 15:47:02

    Ca le fait avec toutes les parties
    Le compilateur génére un grosse série d'erreur dans le genre
    441 test.c
    initializer element is not constant
    ou
    644 test.c
    `static_cast' undeclared here (not in a function)
    ou encore
    644 test.c
    parse error before `HBRUSH'
    ...

    et le linkeur me dit ça :
    gcc: c:\dev-c++\project\win32\test.o: No such file or directory
    gcc: file path prefix `C:\DEV-C_~1\Bin\' never used

  • signaler à un administrateur
    Commentaire de errikke le 09/09/2005 00:19:38

    --> The_Sin : Quel compilateur utilise tu ? et si c'est dev c++ , quelle version ?

  • signaler à un administrateur
    Commentaire de The_Sin le 09/09/2005 18:32:07

    Dev cpp et j'ai essayé avec le 4 et le 5

  • signaler à un administrateur
    Commentaire de errikke le 09/09/2005 21:30:54

    J'utilise dev cpp aussi (4) et je ne vois pas trop ou est le probleme. tu cree bien un projet
    windows application  ?
    Dans les premieres parties, il n'est pas necessaire de rajouter de librairie, normalement
    la configuration de base suffit..

    Je vais encore reflechir a la question.

    Pourrait tu me dire comment tu procede (etape par etape ) pour creer un projet, et ajouter le
    fichier cpp, par exemple pour la premiere partie.

  • signaler à un administrateur
    Commentaire de The_Sin le 09/09/2005 22:07:17

    projet windows application, j'ai fait avec ton fichier mais j'ai aussi fait copier coller, que ce soit en C ou Cpp, j'ajoute -lgdi32 aux options du compilo et voilà je compile mais bug, sinon pour la seconde partie voilà le bug de link qu'il me génére également   [Linker error] undefined reference to `CreateSolidBrush@4' .
    Mais sinon une fois j'avais eu des pb de link avec les lib sdl, je les décompressais et je les remettais à chaque fois mais elles changeaient de taille :s puis un contact qui avait eu le même problème chez un des ses amis m'avait envoyé ses fichiers à lui et là ça avait marché, peut-être là aussi le bug vient seulement de mon pc enfin faudrait que j'essaye sur le pc de mon frère s'il le libère...

  • signaler à un administrateur
    Commentaire de errikke le 10/09/2005 16:42:20

    Normalement l'erreur   undefined reference to `CreateSolidBrush@4' . se produit si on essaie
    de compiler un fichier .cpp tout seul (non inclu dans un projet.)
    L'erreur  `static_cast' undeclared here (not in a function) semblerait indiquer qu'il manque
    une lib.

    Tu devrais peut etre essayer de reinstaller un compilateur et de tout reprendre a 0.

    Peut tu me dire si tu arrives a regler le pb ... cela peut interesser quelqu'un d'autre.