void CCurve::DrawGridLine(QPainter *pPainter, QRect RectCurve,int iGridNumOnX, int iGridNumOnY,QColor clrLine) { int nSaveDC=pPainter->save(); QPen penGridLine; penGridLine.CreatePen (PS_DOT/*点*/,1,clrLine); int ndx = RectCurve.Width ()/iGridNumOnX; int ndy = RectCurve.Height ()/iGridNumOnY; pPainter->SelectObject (&penGridLine); for ( int i = 1; i< iGridNumOnX; i++) { pPainter->MoveTo (RectCurve.left + ndx * i,RectCurve.bottom ); pPainter->LineTo (RectCurve.left + ndx * i,RectCurve.top ); } for (int i = 1; i < iGridNumOnY; i++) { pPainter->MoveTo (RectCurve.left , RectCurve.bottom - ndy * i); pPainter->LineTo (RectCurve.right, RectCurve.bottom - ndy * i); } //恢复 pPainter->restore(nSaveDC); }