Ejemplo n.º 1
0
void Statistics::RenderClimb(HDC hdc, RECT rc) 
{
  ResetScale();
  ScaleYFromData(rc, &flightstats.ThermalAverage);
  ScaleYFromValue(rc, MACCREADY);
  ScaleYFromValue(rc, 0);
  ScaleXFromValue(rc, 0);
  ScaleXFromValue(rc, flightstats.ThermalAverage.sum_n+1);
  
  DrawYGrid(hdc, rc, 
            1.0/LIFTMODIFY, 0,
            STYLE_THINDASHPAPER);
  
  DrawBarChart(hdc, rc,
               &flightstats.ThermalAverage);
  DrawLine(hdc, rc,
           0, MACCREADY, 
           flightstats.ThermalAverage.sum_n+1,
           MACCREADY,
           STYLE_REDTHICK);
  
  DrawTrendN(hdc, rc,
             &flightstats.ThermalAverage,
             STYLE_BLUETHIN);

  DrawXLabel(hdc, rc, TEXT("n"));
  DrawYLabel(hdc, rc, TEXT("w"));

}
Ejemplo n.º 2
0
void CNodeChart::DrawObject(CDC* pDC) 
{

	int iValues	= m_ChartValues.GetSize();
	int iColors		= MAX_PIE_SIZE;

	CString str;
	CRect rect = m_DrawRect;

	// Check values count
	if(iValues <= 0 )
	{
		CFont* oldFont = pDC->SelectObject(&m_txtFont);

		str = "No data are available...";
		pDC->FillSolidRect(rect,RGB(255,255,255));
		rect.top += 50;
		pDC->DrawText(str,&rect,DT_CENTER|DT_VCENTER);
		pDC->SelectObject(oldFont);
		return;
	}
	// Check color count
	if(iColors <= 1)
	{
		CFont* oldFont = pDC->SelectObject(&m_txtFont);
		str = "Color count mus be > 1";
		pDC->FillSolidRect(rect,RGB(255,255,255));
		rect.top += 50;
		pDC->DrawText(str,&rect,DT_CENTER|DT_VCENTER);
		pDC->SelectObject(oldFont);
		return;
	}

	// Drawing the chart
	if(m_dwStyle == NSCS_BAR ){
		DrawBarChart(pDC);
	}
	if(m_dwStyle == NSCS_PIE ){
		DrawPieChart(pDC);
	}
	if(m_dwStyle == NSCS_LINE ){
		DrawLineChart(pDC);
	}
	// Drawing the Title

	str = m_Caption;



	CFont* oldFont = pDC->SelectObject(&m_titleFont);
	pDC->DrawText(str,rect,DT_CENTER);
	pDC->SelectObject(oldFont);

}
Ejemplo n.º 3
0
void CNSChartCtrl::OnPaint() 
{
	CPaintDC dc(this); 

	int iValues	= m_ChartValues.GetSize();
	int iColors		= m_BrushArray.GetSize();

	CString str;
	CRect rect;
	GetClientRect(&rect);

	// Check values count
	if(iValues <= 0 )
	{
		CFont* oldFont = dc.SelectObject(&m_txtFont);

		str = "No data are available...";
		dc.FillSolidRect(rect,RGB(255,255,255));
		rect.top += 50;
		dc.DrawText(str,&rect,DT_CENTER|DT_VCENTER);
		dc.SelectObject(oldFont);
		return;
	}
	// Check color count
	if(iColors <= 1)
	{
		CFont* oldFont = dc.SelectObject(&m_txtFont);
		str = "Color count mus be > 1";
		dc.FillSolidRect(rect,RGB(255,255,255));
		rect.top += 50;
		dc.DrawText(str,&rect,DT_CENTER|DT_VCENTER);
		dc.SelectObject(oldFont);
		return;
	}

	//Creating double buffer painting

	CDC imageDC;
	imageDC.CreateCompatibleDC(&dc);

	CBitmap* pOldMemDCBitmap = NULL;

	if(m_bmpScreen.m_hObject == NULL) 
		m_bmpScreen.CreateCompatibleBitmap( &dc, rect.Width(), rect.Height() );
	pOldMemDCBitmap = (CBitmap*)imageDC.SelectObject(&m_bmpScreen);
	
	imageDC.FillSolidRect(rect,RGB(255,255,255));

//	rect.DeflateRect(0,5);

	// Drawing the chart
	if(m_dwStyle == NSCS_BAR ){
		DrawBarChart(&imageDC);
	}
	if(m_dwStyle == NSCS_PIE ){
		DrawPieChart(&imageDC);
	}
	if(m_dwStyle == NSCS_LINE ){
		DrawLineChart(&imageDC);
	}
	// Drawing the Title

	if(m_Caption.GetLength() == 0 )
		GetWindowText(str);
	else
	{
		str = m_Caption;
	}



	CFont* oldFont = imageDC.SelectObject(&m_titleFont);
	imageDC.DrawText(str,rect,DT_CENTER);
	imageDC.SelectObject(oldFont);

	// Drawing the new bitmap

	dc.BitBlt( rect.left , rect.top , rect.Width(), rect.Height(), 
					&imageDC, 0, 0, SRCCOPY );

	imageDC.SelectObject(pOldMemDCBitmap);

}
Ejemplo n.º 4
0
void Draw()
{
    DrawBarChart(300.0, 100.0, 300, 50, 60.0, 0, false, true, 0xFF0000FF, 0);
}