Пример #1
0
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);
    }
}
Пример #2
0
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());
    }


}