예제 #1
0
void CPreview::DrawPreviewBitmap()
	{
	if(!bContinue) return;


	MaxX=width();
	MaxY=height();
	QPixmap tmpBitmap(MaxX, MaxY);
	QPainter DC(&tmpBitmap);
	QRect rc=rect();

	x1=4;
	x2=MaxX-4;
	y1=4;
	y2=MaxY-4;

	xw1=1;
	xw2=MaxX;
	yw1=0;
	yw2=MaxY;


    QBrush WhiteBrush(QColor(255,255,255));
    QBrush GrayBrush(QColor(192,192,192));
    QBrush BlueBrush(QColor(0,0,255));

    QPen WhitePen(QColor(255,255,255));
	QPen DarkPen(QColor(0,0,0));
    QPen BluePen(QColor(0,0,255));
    QPen YellowPen(QColor(255,255,0));
    QPen WhitePen2(QColor(255,255,255),2);
    QPen GrayPen2(QColor(128,128,128),2);


//********************************************************************
	DC.setPen(BluePen);
	DC.fillRect(rc, BlueBrush);
//	DC.SelectObject(CFont::FromHandle((HFONT)GetStockObject(ANSI_VAR_FONT)));


	int xl=(int)((pDisplay->t1 - pDisplay->tB1)*(x2-x1)/(pDisplay->tB2-pDisplay->tB1)+x1+0.5);
	int xr=(int)((pDisplay->t2 - pDisplay->tB1)*(x2-x1)/(pDisplay->tB2-pDisplay->tB1)+x1+0.5);

	DC.setPen(WhitePen2);

	DC.moveTo(xw1,MaxY-yw2);		
	DC.lineTo(xw2,MaxY-yw2);

	DC.moveTo(xw1,MaxY-yw2);		
	DC.lineTo(xw1,MaxY-yw1);

	DC.setPen(GrayPen2);

	DC.moveTo(xw2,MaxY-yw1);		
	DC.lineTo(xw2,MaxY-yw2);

	DC.moveTo(xw2,MaxY-yw1);		
	DC.lineTo(xw1,MaxY-yw1);

	DrawWaveform(DC);
	
	DC.setPen(WhitePen2);
	DC.moveTo(xl,MaxY-y1);		
	DC.lineTo(xr,MaxY-y1);
	DC.lineTo(xr,MaxY-y2);		
	DC.lineTo(xl,MaxY-y2);		
	DC.lineTo(xl,MaxY-y1);		


//********************************************************************

	ScreenBitmapCriticalSection.lock();
	Bitmap=tmpBitmap;
	bDrawBitmap=TRUE;
	ScreenBitmapCriticalSection.unlock();
	repaint(FALSE);
	}
void CWaveformWnd::OnPaint()
{
    CPaintDC dc(this); // device context for painting

    DrawWaveform(&dc);
}