void CSplitterWndEx::OnPaint() { CSplitterWnd::OnPaint(); if (bWhiteLine) { CClientDC dc(this); CRect rectClient; GetClientRect(rectClient); CPen pn(PS_SOLID, 1, GetSysColor(COLOR_3DSHADOW)); CPen* op = dc.SelectObject(&pn); dc.MoveTo(rectClient.left, rectClient.top); dc.LineTo(rectClient.right, rectClient.top); CPen pn1(PS_SOLID, 1, GetSysColor(COLOR_3DHILIGHT)); dc.SelectObject(&pn1); dc.MoveTo(rectClient.left, rectClient.top+1); dc.LineTo(rectClient.right, rectClient.top+1); dc.SelectObject(op); } }
Segment Segment::offset(double m)const { double dx = toPoint.getX() - fromPoint.getX(); double dy = toPoint.getY() - fromPoint.getY(); double d = sqrt(dx*dx + dy*dy); if(d == 0) { return Segment(this->getColor(), fromPoint, toPoint, this->getStrokeWidth()); } else { double offx = -m * dy / d; double offy = m * dx / d; Point pn0(fromPoint.getX() + offx, fromPoint.getY() + offy); Point pn1(toPoint.getX() + offx, toPoint.getY() + offy); return Segment(this->getColor(),pn0, pn1, this->getStrokeWidth()); } }