salut,je fais une application avec visualC++ 6.0 et je voudrais dessine un rectangle grace a CRect, mais celui cu ne s'affiche pas.
est ce que vous saurier comment faire?
merci
salut,je fais une application avec visualC++ 6.0 et je voudrais dessine un rectangle grace a CRect, mais celui cu ne s'affiche pas.
est ce que vous saurier comment faire?
merci
tu as dessiné ou ? tu as raffraichi ? (avec invalidateRect)
en fait, quand je fait un click gauche je cree un rectangle avec le point cliqué . quand je deplace ma souris, je crée un rectangle qui a pour parametre le point clické precedement et le point ou se trouve ma souris et enfin quand je releve le bouton gauche je dessine le rectangle qui a pour parametre le point lorsque j'ai appuyer sur le bouton gauche et le point lorsque je relache le bouton gauche.
je rafraichi bien , mais sa s'affiche pas quand meme
comment traces-tu les lignes ? montre ton code
mon code est le suivant:
dans le construteur de la classe view:
dans la fonction OnLButtonDown:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pen.CreatePen(PS_SOLID,5,RGB(255,0,0 ));
dans la fonction OnMouseMove:
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 m_select=true; SetCapture(); //On recupere le premier point du rectangle de selection m_premP = point; //On cree le rectangle de selection CRect rect(point, point); //on recupere le contexte de peripherique CDC *pDC = GetDC(); DC->SelectObject(&pen); m_rect = rect; ReleaseDC(pDC); InvalidateRect(m_rect,true);
dans la fonction OnLButtonUp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if(m_select) { CRect rect(m_premP, point); rect.NormalizeRect(); CDC *pDC = GetDC(); DC->SelectObject(&pen); m_rect = rect; ReleaseDC(pDC); InvalidateRect(m_rect,true); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CDC *pDC = GetDC(); DC->SelectObject(&pen); CRect rect(0,0,0,0); ReleaseDC(pDC); ReleaseCapture(); m_select=false; InvalidateRect(rect,true); CScrollView::OnLButtonUp(nFlags, point);
euh ... je vois pas trop de quoi dessiner là ... manque des drawline ou des moveto ou des choses comme ca ...
une fois que ta récuperé tes coordonnées utilise CDC::Rectangle(int x1,int y1,int x2,int y2)...
ben je vais essayer avec des drawline alors.
merci pour ton aide
merci pour ton aide lucky, mais il faudrai que cela me dessine seulement les bord du rectangle et la j'ai un rectangle tout blanc
utilise peut être CDC::FillSolidRect(...
J'ai vu dans les lignes de codes "GetDC()" et j'aimerais savoir ce qu'est le DC récupéré par GetDC?
(ouais je vais passer pour un , mais bon c'est pas faux lol)
tu as le droit de regarder dans msdn ou dans un tutoriel http://chgi.developpez.com/windows/hdc/
pour ecrire dans un fichier tu as besoin d'un handle sur le fichier
pour dessiner graphiquement dans une fenetre tu as besoin d'un Device Context sur la fenetre en question.
tous les controles windows finissent par dessiner dans leur fenetre et utilisent donc un DC..
GetDC va de paire avec ReleaseDC..
Partager