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

MFC Discussion :

Direct2D et les mfc


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Par défaut Direct2D et les mfc
    Bonjour à tous,

    J'aimerai utiliser direct2D dans la view d'une application MFC, comme le fait Boris Jabes dans cette session.

    Auriez vous une idée de comment réaliser une telle view ? (un sample me suffirait )

    Le but est de "dessiner" un planning. Existe-t-il une autre solution ? (sans direct2D)

    Vous l'aurez compris, je débute en MFC !

    Merci pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 14
    Par défaut
    Bonjour,

    Vu le nombre de réponses, j'en conclu que lacombinaison D2D et MFC n'est pas courante ! Pourtant on lit un peu de partout que D2D remplace GDI+ dans windows Vista et Seven.

    J'ai trouvé cet exemple un peu vieux... Pensez vous qu'il est toujours "juste" ?

    Merci.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Oui c'est possible.

    Il faut créer une classe qui va te créer ton device directX. Ensuite tu fais dériver ta ChildView de cette classe.
    Tu appelles la création du device dans l'évenement OnSize (1 seul fois), et ensuite tu peux initialiser ta scène.
    Le rendu se gère dans le OnPaint.

  4. #4
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Par défaut
    J'ai eu le même genre de problème pour direct3D, j'ai trouvé un exemple qui fonctionne, mais c'est pour D3D, pas D2D, et c'est vrai que tu risques de galérer.

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Salut,

    Citation Envoyé par coincoin73 Voir le message
    Il faut créer une classe qui va te créer ton device directX. Ensuite tu fais dériver ta ChildView de cette classe.
    Pas forcément mais c'est certain que c'est mieux.
    Le plus important c'est de fournir le HWND de la fenêtre ou on effectuera le rendu lorsqu'on appelle CreateDevice

    Il faut passer le HWND à une structure D3DPRESENT_PARAMETERS.
    Que ce soit une CDialog,une CView...
    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
     
    IDirect3Dx* m_pD3D;						
    IDirect3DDevicex *m_pD3DDevice;
     
     
    D3DPRESENT_PARAMETERS d3dpp; 
    	ZeroMemory( &d3dpp, sizeof(d3dpp)  );
    	d3dpp.Windowed   = TRUE;
    	d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    	d3dpp.BackBufferFormat = D3Ddm.Format;
    	d3dpp.hDeviceWindow = m_hwnd;
    	d3dpp.BackBufferWidth = 800;
    	d3dpp.BackBufferHeight = 600;
    	d3dpp.BackBufferCount = 1;
    	if( FAILED( m_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hwnd,
    									  D3DCREATE_HARDWARE_VERTEXPROCESSING,
    									  &d3dpp, &m_pD3DDevice ) ) )
    	{
    		if( FAILED( m_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hwnd,
    									  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
    									  &d3dpp, &m_pD3DDevice ) ) )
    Ensuite oui on appelle la boucle de rendu BeginScene() EndScene() dans OnPaint ou bien on fait une fonction de Render() dans la procédure de traitements de messages

  6. #6
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par Milmilmil Voir le message
    Le but est de "dessiner" un planning. Existe-t-il une autre solution ? (sans direct2D)
    pour faire du tracé graphique je n'utiliserais pas Direct X et Direct2d.....
    je préfèrrais utiliser le GDI qui offre de nombreuses possibilités de tracé..
    Direct2d risque de solliciter beaucoup les ressources matérielles et le CPU...
    pour faire du tracé GDI rapide il faut utiliser le grand classique, les HDC en mémoire et faire des BitBlt ou StretchBlt après..

  7. #7
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Par défaut
    C'est sûr de D2D c'est plus orienté jeu 2d ou interface de jeu, et encore...

Discussions similaires

  1. [MFC] Faible utilisation des sockets via les MFC ?
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 25/08/2005, 17h15
  2. Origine de Visual C++ - lien avec les MFC
    Par drinkmilk dans le forum MFC
    Réponses: 5
    Dernier message: 18/04/2005, 10h47
  3. [ODBC] Utiliser une base de données Access sans les MFC
    Par Higestromm dans le forum Bases de données
    Réponses: 6
    Dernier message: 15/03/2005, 21h37
  4. Réponses: 10
    Dernier message: 22/02/2005, 16h11
  5. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59

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