Bonjour
voila ,j'ai un probleme avec le dessin dans ma classe dérivée de CDialog.
voila en gros comment je procéde :
d_Point est un CPoint variable membre de ma classe dans lequel je sauvegarde le poinr pour tracer un trait avec le nouveau point que je recois dans 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
16
17
18
19
20
21 void CTestDlg::OnMouseMove(UINT nFlags, CPoint point) { if((nFlags == MK_LBUTTON) && IsPointValid(d_Point) && IsPointValid(point)) { HPEN drawpen = CreatePen(PS_SOLID,1,RGB(200,0,255)); CDC* cdc = GetWindowDC(); HDC hdc = cdc->GetSafeHdc(); SelectObject(hdc,drawpen); MoveToEx(hdc,d_Point.x,d_Point.y,&d_Point); LineTo(hdc,point.x,point.y); DeleteObject(drawpen); } d_Point = point; m_Xpos.Format("%d",point.x); m_Ypos.Format("%d",point.y); UpdateData(false); CDialog::OnMouseMove(nFlags, point); }
le Code conditionnel au début empeche de dessiner dans une partie de la boite de dialogue la ou il ya 2 boutons et 2 textes correspondants aux coordonnées qui sont mis a jour juste avant le UpdateData(false) .
Tout ca fonctionne , mais au bout d'un moment ca s'arrete de dessiner sans raison .
le trait de dessin ici est violet . ET juste avant que ca plante le trait passe noir sur 2 ou 3 cm ( a l'écran ) puis plus rien .
Si qq'un a une idée ?
Partager