Dessiner dans le CView à partir du CDoc

[Résolu]
Signaler
Messages postés
3
Date d'inscription
jeudi 25 septembre 2008
Statut
Membre
Dernière intervention
9 novembre 2008
-
Messages postés
3
Date d'inscription
jeudi 25 septembre 2008
Statut
Membre
Dernière intervention
9 novembre 2008
-
Bonjour,

Je suis entrain de réaliser un petit jeu qui dessine des carrés sous vc++.
Dans mon fichier CDocument je voudrais pouvoir y appeler des fonctions qui dessine.
J'ai donc besoins du rc et pDC de ma view, et je n'y arrive pas.
Voilà ce que j'ai :

CMyDoc::CMyDoc()
{
    Dessine()
}

void CMyDoc::Dessine()
{
    CDC *pDC = new CDC;
    CRect rc;
    GetClientRect(GetDesktopWindow(),&rc);
    pDC->Rectangle(10,20,10,20);
}

Et ça me fait une méchante erreur je me doute que les lignes :
    CDC *pDC = new CDC;

    CRect rc;

    GetClientRect(GetDesktopWindow(),&rc);
ne sont pas celles attendues.

Merci de me filer un coup de main !

2 réponses

Messages postés
71
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
12 septembre 2013

il faut que tu initialise ton DC avec le HWND de ta fenetre principale, en l'occurance ton View :
(en MFC je ens ais pas mais en win32)
HDC hDc = GetDC(m_hWnd);

Ensuite je pense que tu dois dessiner ton interface dans la methode OnPaint de ton View et non pas a la construction de ton Doc, et le mieux (si je ne me trompe pas) est d'abord de dessiner dans un DC en mémoire et après de faire un bitblt de ton image en mémoire vers l'affichage (beaucoup plus rapide que de dessiner directement dans le DC affiché).
Messages postés
3
Date d'inscription
jeudi 25 septembre 2008
Statut
Membre
Dernière intervention
9 novembre 2008

Merci de ta réponse, je vais regarder ça !