void QGraph::DrawCurve(int nIndex, QPainter &painter) { painter.save(); static double scaley; static int i, ptside; static QPoint From, To, Min, Max; static QRect rViewRect; ptside = 2; CCurve* pCurve = GetCurve(nIndex); scaley = m_scaley; QBrush FillBrush(m_BkColor); painter.setBrush(FillBrush); QPen CurvePen(pCurve->GetColor()); CurvePen.setStyle(GetStyle(pCurve->GetStyle())); CurvePen.setWidth((int)pCurve->GetWidth()); painter.setPen(CurvePen); Min.setX(int(xmin/m_scalex) +m_ptoffset.x()); Min.setY(int(ymin/scaley) +m_ptoffset.y()); Max.setX(int(xmax/m_scalex) +m_ptoffset.x()); Max.setY(int(ymax/scaley) +m_ptoffset.y()); rViewRect.setTopLeft(Min); rViewRect.setBottomRight(Max); if(pCurve->n>=1) { From.setX(int(pCurve->x[0]/m_scalex+m_ptoffset.x())); From.setY(int(pCurve->y[0]/scaley +m_ptoffset.y())); if(pCurve->IsVisible()) { for (i=1; i<pCurve->n;i++) { To.setX(int(pCurve->x[i]/m_scalex+m_ptoffset.x())); To.setY(int(pCurve->y[i]/scaley +m_ptoffset.y())); painter.drawLine(From, To); From = To; } } if(pCurve->PointsVisible()) { for (i=0; i<pCurve->n;i++) { if(pCurve->GetSelected() !=i) painter.drawRect(int(pCurve->x[i]/m_scalex+m_ptoffset.x())-ptside, int(pCurve->y[i]/ scaley+m_ptoffset.y())-ptside, 2*ptside,2*ptside); } } } if(m_bHighlightPoint) { int point = pCurve->GetSelected(); if(point>=0) { //highlight QColor HighColor(0,40, 150); CurvePen.setWidth((int)pCurve->GetWidth()); CurvePen.setColor(HighColor); painter.setPen(CurvePen); To.setX(int(pCurve->x[point]/m_scalex+m_ptoffset.x())); To.setY(int(pCurve->y[point]/scaley +m_ptoffset.y())); painter.drawRect(To.x()-ptside-1,To.y()-ptside-1, 2*(ptside+1),2*(ptside+1)); } } painter.restore(); }
void CBodyGridDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); if (!pDC) return; // int nSavedDC = dc.SaveDC(); switch (nIDCtl) { case IDC_GRIDSTYLE: { LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_GRIDSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_Color; CPen CurvePen(PS_GEOMETRIC | m_Style, GetPenWidth(m_Width,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); break; } case IDC_MINSTYLE:{ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_MINSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_MinColor; CPen CurvePen(PS_GEOMETRIC | m_MinStyle, GetPenWidth(m_MinWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); break; } case IDC_GRIDSTYLE2:{ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_GRIDSTYLE2)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_Color2; CPen CurvePen(PS_GEOMETRIC | m_Style2, GetPenWidth(m_Width2,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); break; } case IDC_MINSTYLE2:{ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_MINSTYLE2)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_MinColor2; CPen CurvePen(PS_GEOMETRIC | m_MinStyle2, GetPenWidth(m_MinWidth2,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); break; } } }
void CXInvClrDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); if (!pDC) return; int nSavedDC = pDC->SaveDC(); if(nIDCtl==IDC_SPLINESTYLE) { LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_SPLINESTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_SplineClr; CPen CurvePen(PS_GEOMETRIC | m_SplineStyle, GetPenWidth(m_SplineWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); pDC->RestoreDC(nSavedDC); } if(nIDCtl==IDC_REFLECTEDSTYLE) { LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_REFLECTEDSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_ReflectedClr; CPen CurvePen(PS_GEOMETRIC | m_ReflectedStyle, GetPenWidth(m_ReflectedWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); pDC->RestoreDC(nSavedDC); } else if(nIDCtl==IDC_MODFOIL) { LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_MODFOIL)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_ModFoilClr; CPen CurvePen(PS_GEOMETRIC | m_ModFoilStyle, GetPenWidth(m_ModFoilWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); pDC->RestoreDC(nSavedDC); } else if(nIDCtl==IDC_REFFOIL) { LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_REFFOIL)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_RefFoilClr; CPen CurvePen(PS_GEOMETRIC | m_RefFoilStyle, GetPenWidth(m_RefFoilWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); pDC->RestoreDC(nSavedDC); } }
void CGraphOptions::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); if (!pDC) return; int nSavedDC = pDC->SaveDC(); if(nIDCtl==IDC_AXISSTYLE){ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_AXISSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_crColor; CPen CurvePen(PS_GEOMETRIC | m_nStyle, GetPenWidth(m_nWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); } else if(nIDCtl==IDC_XMAINSTYLE){ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_XMAINSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_XMClr; CPen CurvePen(PS_GEOMETRIC | m_XMStyle, GetPenWidth(m_XMWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); } else if(nIDCtl==IDC_YMAINSTYLE){ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_YMAINSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_YMClr; CPen CurvePen(PS_GEOMETRIC | m_YMStyle, GetPenWidth(m_YMWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); } else if(nIDCtl==IDC_XMINSTYLE){ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_XMINSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_XMinClr; CPen CurvePen(PS_GEOMETRIC | m_XMinStyle, GetPenWidth(m_XMinWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); } else if(nIDCtl==IDC_YMINSTYLE){ LOGBRUSH lb; lb.lbStyle = BS_SOLID; lb.lbColor = RGB(100,100,100); CPen DotPen(PS_GEOMETRIC | PS_DOT, 1, &lb); CPen *pOldPen = pDC->SelectObject(&DotPen); CBrush FillBrush(GetSysColor(COLOR_3DFACE)); CBrush* pOldBrush = pDC->SelectObject(&FillBrush); CRect SRect ; GetDlgItem(IDC_YMINSTYLE)->GetClientRect(&SRect); SRect.DeflateRect(2,2,2,2); pDC->Rectangle(&SRect); lb.lbStyle = BS_SOLID; lb.lbColor = m_YMinClr; CPen CurvePen(PS_GEOMETRIC | m_YMinStyle, GetPenWidth(m_YMinWidth,false), &lb); pDC->SelectObject(&CurvePen); pDC->MoveTo(5,8); pDC->LineTo(SRect.right-5,8); pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); } pDC->RestoreDC(nSavedDC); // CDialog::OnDrawItem(nIDCt, lpDrawItemStruct); }