Bonjour

voila ,j'ai un probleme avec le dessin dans ma classe dérivée de CDialog.
voila en gros comment je procéde :

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);
}
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() .
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 ?