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

Visual C++ Discussion :

comment faire un damier ?


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut comment faire un damier ?
    j'ai créé un moteur pour un jeu en borland c++, seulement maintenan j'aurais besoin d'une jolie interface graphique avec des fenetres et tout et tout, le prob c'est que je n'y connais vraiment rien en VC++ ...

    mais j'ai quand meme essayé de m'y mettre et ca avance petit a petit

    maintenan je reste bloqué car je dois pouvoir afficher un damier (genre jeux d'echec) dans une boite de dialogue, et ce damier doit pouvoir afficher des GIF sur plusieurs couches (avec des couleurs transparentes quoi)

    j'ai vu plusieurs exemples mais aucun qui me convienne car ils ne passent pas par les MFC mais directement avec les switch(), or moi j'emploie la fonction DoModal ()

    donc si quelqu'un pouvait me filer un exemple de code affichant un bete petit damier qui charge des images gif, ce serai le pied total

    merci

  2. #2
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    j'ai vu plusieurs exemples mais aucun qui me convienne car ils ne passent pas par les MFC mais directement avec les switch(), or moi j'emploie la fonction DoModal ()
    MFC... switch()? t'es sur d'avoir codé tt ça sous borland C++???

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    j'ai codé le moteur en c++

    mais vu que je dois passer en Visual, je dois passer par des boite de dialogue pour l'affichage (et pas sur la console)

    ca c'est le genre de code que je trouve :
    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
    LRESULT CALLBACK AppWndProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
    {
      switch(mssg)
      {
      case WM_CREATE:
        CreateDCAndBitmap();
        break;
      case WM_PAINT:
        OnPaint(hwnd);
        break;
      case WM_DESTROY:
        DeleteObject(hbmpJPG);
        DeleteObject(hbmpGIF);
        DeleteDC(hdcJPG);
        DeleteDC(hdcGIF);
        PostQuitMessage(0);
        return 0;
      }
      return DefWindowProc(hwnd, mssg, wParam, lParam);
    }
    et ca c plutot le genre de code dont j'aurai besoin :
    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
    class boiteImage : public CDialog
    {
    // Construction
    public:
    	boiteImage(CWnd* pParent = NULL);   // standard constructor
     
    // Dialog Data
    	//{{AFX_DATA(boiteImage)
    	enum { IDD = IDD_DIALOG2 };
    		// NOTE: the ClassWizard will add data members here
    	//}}AFX_DATA
     
     
    // Overrides
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(boiteImage)
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    	//}}AFX_VIRTUAL
     
    // Implementation
    protected:
     
    	// Generated message map functions
    	//{{AFX_MSG(boiteImage)
    		// NOTE: the ClassWizard will add member functions here
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_BOITEIMAGE_H__EBE0C941_6C22_4636_9426_A5D362050E1B__INCLUDED_)
    avec a la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    boiteImage dlg;
    dlg.DoModal ();
    donc je peux pas employer les switch () comme dans le premier exemple

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    pour comprendre le principe, je te conseille la lecture du tutoriel MFC de farscape http://farscape.developpez.com/tutor...arrer-mfc-vc6/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    page tres interressante, j'ai appris quelques petites astuces

    malheureusement, il ne parle pas des images ...

    ya pas un bete code qui traine quelques part ? ca doit pas etre bien compliqué d'afficher un tableau de gif dans une boite de dialogue

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2004
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 122
    Par défaut
    Salut,
    Bon vu ce que tu veux faire, faire des tracés, afficher des images et faire de la transparence, je te conseillerai d'utiliser GDI + qui est fait pour ça, va voir chez microsoft, tu y as toutes les références.

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Personnellement, je ne me poserais même pas la question: j'utiliserais la SDL
    C'est que du bonheur

  8. #8
    Membre éclairé

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Par défaut
    petite question au passage : qu'est-ce que GDI + ? (un lien p-e ...)
    je connais bien les APIs GDI mais pas GDI + ...
    merci

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 45
    Par défaut
    merci bcp pour ces infos précieuses

    a premiere vue, la SDL m'a l'air vachement bien, en plus le site est nikel classe

    v m'attarder un peu dessus

    merci encore

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    sinon, tu as ici un article sur la sdl http://anomaly.developpez.com/tutoriel/sdl/

  11. #11
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par ded jay
    donc je peux pas employer les switch () comme dans le
    Apparemment tu utilises du code sans rien y comprendre !
    Le premier code avec les switch c'est de la pure programmation win32 que l'on peut faire avec n'importe quel compilateur C++ win32.
    Le "switch" sert à traiter les messages que reçoit la boite de dialogue et sa procédure de type CALLBACK.
    Avec MFC tout cela est transparent il ya à la place des MACRO du genre on_.....
    Essayer de trouver un bon tutoriel MFC sinon on peut peut-être encore trouver le livre "Atelier Visual C++" de m$ Press....

  12. #12
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par ded jay
    merci bcp pour ces infos précieuses

    a premiere vue, la SDL m'a l'air vachement bien, en plus le site est nikel classe

    v m'attarder un peu dessus

    merci encore
    Avec SDL on ne peut pas utiliser les MFC...vu que par essence SDL se veut portable...

  13. #13
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par basnifo
    petite question au passage : qu'est-ce que GDI + ? (un lien p-e ...)
    je connais bien les APIs GDI mais pas GDI + ...
    merci
    déja répondu à cette question , faire une recherche.

    GDI + c'est la même chose que gdi32.dll mais en code "managed" essentiellement pour .NET

  14. #14
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mat.M
    Citation Envoyé par ded jay
    merci bcp pour ces infos précieuses

    a premiere vue, la SDL m'a l'air vachement bien, en plus le site est nikel classe

    v m'attarder un peu dessus

    merci encore
    Avec SDL on ne peut pas utiliser les MFC...vu que par essence SDL se veut portable...
    Bah non, rien ne t'empêche d'utiliser SDL + MFC. Sauf que si tu le fais, en effet, tu perds la portabilité.
    Bon, j'avoue que je n'ai pas testé, car à chaque fois que j'ai utilisé la SDL je voulais conserver la portabilité, mais je n'ai rien lu qui indique que ce soit impossible.

  15. #15
    mat.M
    Invité(e)
    Par défaut
    Attentiob R0d j'ai pas dit que cela soit impossible; mais d'une part dans une appli visuelle MFC il n'ya ni main ni winmain alors il faut se livrer à un gros bricolage pour utiliser SDL.

    Si on veut utiliser MFC+ Direct X ou Open GL mieux vaut appeler directement les composantes de ces API plutot que SDL..

  16. #16
    Membre éprouvé
    Inscrit en
    Avril 2004
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 122
    Par défaut
    Citation Envoyé par mat.M
    Citation Envoyé par basnifo
    petite question au passage : qu'est-ce que GDI + ? (un lien p-e ...)
    je connais bien les APIs GDI mais pas GDI + ...
    merci
    déja répondu à cette question , faire une recherche.

    GDI + c'est la même chose que gdi32.dll mais en code "managed" essentiellement pour .NET

    Non pas du tout, GDI + est une surcouche à GDI apportant des classes et des fonctions très utiles et pratiques (comme les dégradés par exemple ou les courbes de bézier), ce n'est pas fait exclusivement pour le .NET, c'est une librairie que tu peux utiliser avec Visual C++ 6 sans problème, il y a tout ce qu'il faut pour l'utiliser, les headers, un .lib et une dll.

    Pour plus d'infos, voir GDI+ dans le msdn.


    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp

  17. #17
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    http://www.developpez.net/forums/sho...php?t=162809#5

    Voici la démo que j'ai réalisé avec Delphi (qu'un seul et unique EXE !!) :
    http://sub0.developpez.com/delphi/exe/TableB5.zip

    Le prog fonctionne avec mes propres fonctions graphiques 32bits (image opaque 24bits + masque alpha 8bits). Si vous avez des questions, je suis à votre disposition, à+

Discussions similaires

  1. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  2. comment faire evoluer ma base vers interbase6
    Par toure32 dans le forum InterBase
    Réponses: 5
    Dernier message: 23/10/2002, 10h59
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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