void CStartupView::DrawSeparator(Gdiplus::Graphics &graphics) { Gdiplus::Rect gdipRcLogoRegion; Gdiplus::Rect gdipRcButtonRegion; Gdiplus::Rect gdipRcBottomRegion; CalculateRegions(gdipRcLogoRegion, gdipRcButtonRegion, gdipRcBottomRegion); Gdiplus::Pen greyPen(Gdiplus::Color(255, 190, 190, 190), 1); // horizontal separator on the left side Gdiplus::Rect gdipRcLeftButtons; CalculateLeftButtonsRegion(gdipRcLeftButtons); int x1 = gdipRcLeftButtons.X + SEPARATOR_SPACE; int y1 = gdipRcLeftButtons.Y + BUTTON_TITLE_HEIGHT + BUTTON_SUBTITLE_HEIGHT + 2 * BUTTON_HEIGHT + SEPARATOR_HEIGHT/2.0; int x2 = gdipRcLeftButtons.X + gdipRcLeftButtons.Width - SEPARATOR_SPACE; int y2 = y1; graphics.DrawLine(&greyPen, x1, y1, x2, y2); // vertical separator in the middle of the page x1 = gdipRcButtonRegion.X + gdipRcButtonRegion.Width / 2.0; y1 = gdipRcLeftButtons.Y + SEPARATOR_SPACE; x2 = x1; y2 = gdipRcLeftButtons.Y + gdipRcLeftButtons.Height - SEPARATOR_SPACE; graphics.DrawLine(&greyPen, x1, y1, x2, y2); }
void CPage_Node_Lane::DrawCentroidRadicalLines(CPaintDC *pDC, CRect PlotRect,bool bOriginAngle/*=true*/) { CPen blackPen(PS_SOLID,0,RGB(0,0,0)); CPen greyPen(PS_SOLID,2,RGB(128,128,128)); CPen lanePen(PS_SOLID,1,RGB(0,0,0)); CPen laneSelectedPen(PS_SOLID,2,RGB(255,0,0)); CBrush greyBrush(RGB(128,128,128)); CBrush whiteBrush(RGB(255,255,255)); CBrush redBrush(RGB(255,0,0)); pDC->SetBkMode(TRANSPARENT); CPen *pOldPen = pDC->SelectObject(&blackPen); CBrush* pOldBrush = pDC->SelectObject(&whiteBrush); pDC->Rectangle(PlotRect); GDPoint cntPoint,lefttop,bottomright; CRect centerRect; cntPoint.x = 0.0; cntPoint.y = 0.0; int nRadius2 = m_Para.nCentroidRadius; lefttop.x = cntPoint.x - nRadius2; lefttop.y = cntPoint.y - nRadius2; bottomright.x = cntPoint.x + nRadius2; bottomright.y = cntPoint.y + nRadius2; pDC->SelectObject(&greyPen); pDC->SelectObject(&greyBrush); centerRect = CRect(NPtoSP(lefttop),NPtoSP(bottomright)); pDC->Ellipse(centerRect); for(int i=0;i<m_LinkData.size();i++) { LinkRecord *pRecord = m_LinkData[i]; pDC->SelectObject(&greyPen); DrawRadicalLine(pDC,pRecord,bOriginAngle); pDC->SelectObject(&lanePen); pDC->SelectObject(&greyBrush); DrawLanes(pDC,pRecord,bOriginAngle); pDC->SelectObject(&blackPen); if (pRecord->nLinkID == m_nSelectedLinkID) pDC->SelectObject(&redBrush); DrawLinkPinPoint(pDC,pRecord,bOriginAngle); } // draw selected link pin point pDC->SelectObject(pOldPen); pDC->SelectObject(pOldBrush); }
void CAudioLevelIndicator::OnPaint() { CPaintDC dc(this); CRect rcClient; GetClientRect(&rcClient); UINT nPosition = 0; if (m_dAudioLevel >= 0 && m_dAudioLevel <= 1.0) nPosition = (int)(m_dAudioLevel*39); Gdiplus::Graphics graphics(dc); Gdiplus::REAL dScaleX = (Gdiplus::REAL)rcClient.Width() / 13.0; Gdiplus::REAL dScaleY = (Gdiplus::REAL)rcClient.Height() / 40.0; graphics.ScaleTransform(dScaleX, dScaleY); // Border Gdiplus::Pen greyPen(Gdiplus::Color(255, 109, 109, 109), 1); graphics.DrawLine(&greyPen, 0, 0, 0, rcClient.Height()-1); greyPen.SetColor(Gdiplus::Color(255, 168, 168, 168)); graphics.DrawLine(&greyPen, 1, 0, rcClient.Width()-1, 0); greyPen.SetColor(Gdiplus::Color(255, 225, 225, 225)); graphics.DrawLine(&greyPen, rcClient.Width()-1, 1, rcClient.Width()-1, rcClient.Height()); greyPen.SetColor(Gdiplus::Color(255, 215, 215, 215)); graphics.DrawLine(&greyPen, 1, rcClient.Height()-1, rcClient.Width()-2, rcClient.Height()-1); // Background Gdiplus::LinearGradientBrush linGrBrushRY( Gdiplus::Point(0, 1), Gdiplus::Point(0, 16), Gdiplus::Color(255, 124, 47, 47), Gdiplus::Color(255, 174, 165, 65)); Gdiplus::REAL relativeIntensities[] = {0.0f, 0.5f, 1.0f}; Gdiplus::REAL relativePositions[] = {0.0f, 0.25f, 1.0f}; linGrBrushRY.SetBlend(relativeIntensities, relativePositions, 3); Gdiplus::LinearGradientBrush linGrBrushYG( Gdiplus::Point(0, 16), Gdiplus::Point(0, 39), Gdiplus::Color(255, 174, 165, 65), Gdiplus::Color(255, 127, 188, 77)); graphics.FillRectangle(&linGrBrushRY, 1, 1, 11, 16); graphics.FillRectangle(&linGrBrushYG, 1, 17, 11, 22); // highlighting if (nPosition > 0) { Gdiplus::LinearGradientBrush linGrBrushRYBright( Gdiplus::Point(0, 1), Gdiplus::Point(0, 16), Gdiplus::Color(255, 153, 0, 0), Gdiplus::Color(255, 219, 216, 0)); linGrBrushRYBright.SetBlend(relativeIntensities, relativePositions, 3); Gdiplus::LinearGradientBrush linGrBrushYGBright( Gdiplus::Point(0, 16), Gdiplus::Point(0, 39), Gdiplus::Color(255, 219, 216, 0), Gdiplus::Color(255, 107, 233, 0)); int nLowerPosition = nPosition >= 22 ? 0 : 22 - nPosition; graphics.FillRectangle(&linGrBrushYGBright, 1, 17+nLowerPosition, 11, 22-nLowerPosition); if (nPosition > 22) { int nUpperPosition = nPosition >= 39 ? 0 : 38 - nPosition; graphics.FillRectangle(&linGrBrushRYBright, 1, 1+nUpperPosition, 11, 16-nUpperPosition); } Gdiplus::REAL relativeIntensities2[] = {0.0f, 0.1f, 0.0f}; Gdiplus::REAL relativePositions2[] = {0.0f, 0.5f, 1.0f}; Gdiplus::LinearGradientBrush linGrBrushWhiteL( Gdiplus::Point(1, 0), Gdiplus::Point(6, 0), Gdiplus::Color(0, 255, 255, 255), Gdiplus::Color(148, 255, 255, 255)); Gdiplus::LinearGradientBrush linGrBrushWhiteR( Gdiplus::Point(6, 0), Gdiplus::Point(13, 0), Gdiplus::Color(148, 255, 255, 255), Gdiplus::Color(0, 255, 255, 255)); int nUpperPosition = nPosition >= 39 ? 0 : 38 - nPosition; graphics.FillRectangle(&linGrBrushWhiteL, 1, 1+nUpperPosition, 6, 38-nUpperPosition); graphics.FillRectangle(&linGrBrushWhiteR, 7, 1+nUpperPosition, 6, 38-nUpperPosition); Gdiplus::Pen whitePen(Gdiplus::Color(255, 255, 255, 255), 1); graphics.DrawLine(&whitePen, 1, 1+nUpperPosition, 12, 1+nUpperPosition); } }