void CDBPickView::DrawFocused(CDC *pDC)
	{
	if(nActiveScreen==-1) return;

	int xw1=WaveformInfo[nActiveScreen]->xw1+4;
	int xw2=WaveformInfo[nActiveScreen]->xw1+WindowInfoXsize-4;
	int yw1=WaveformInfo[nActiveScreen]->yw1+4;
	int yw2=WaveformInfo[nActiveScreen]->yw2-4;


    CPen WhitePen(PS_SOLID,1,RGB(255,255,255));
    CPen GrayPen(PS_SOLID,1,RGB(128,128,128));

    CPen   *oldPen=pDC->GetCurrentPen();

	pDC->SelectObject(&GrayPen);

	pDC->MoveTo(xw1,MaxY-yw2);		
	pDC->LineTo(xw2,MaxY-yw2);

	pDC->MoveTo(xw1,MaxY-yw2);		
	pDC->LineTo(xw1,MaxY-yw1);

	pDC->SelectObject(&WhitePen);

	pDC->MoveTo(xw2,MaxY-yw1);		
	pDC->LineTo(xw2,MaxY-yw2);

	pDC->MoveTo(xw2+1,MaxY-yw1);		
	pDC->LineTo(xw2+1,MaxY-yw2);


	pDC->MoveTo(xw2,MaxY-yw1);		
	pDC->LineTo(xw1,MaxY-yw1);

	pDC->MoveTo(xw2,MaxY-yw1+1);		
	pDC->LineTo(xw1,MaxY-yw1+1);


    pDC->SelectObject(oldPen);

	}
Esempio n. 2
0
void TimeBar::paintEvent( QPaintEvent * event )
{
	QPen pen(QColor(0,0,0));
	QPen GrayPen(QColor(0,0,0,50));
	QBrush bush(QColor(0,0,0,70));
	QPainter painter(this);
	pen.setWidth(1);
	painter.setPen(pen);
	painter.setBrush(bush);

	for(int i=0;i<100;i++)
	{
		if (mZoom*i<=event->rect().right())
		{
			//绘制大刻度
			painter.drawLine(QPointF(mZoom*i,15),QPointF(mZoom*i,25));
			painter.drawText(QPointF(mZoom*i,10),QString("%1.0S").arg(i));
			
			//绘制小刻度
			for (int j=1;j<mZoom/MIN_SCALE_SIZE;j++)
			{
				painter.drawLine(QPointF(MIN_SCALE_SIZE*j+mZoom*i,20),QPointF(MIN_SCALE_SIZE*j+mZoom*i,25));
			}

			//绘制TimeLine
			QMapIterator<int,QVector<TimeLine*>*> mapIt(mTimeLine);
			while (mapIt.hasNext()) 
			{
				mapIt.next();
				
				for (QVector<TimeLine*>::const_iterator it=mapIt.value()->begin();it!=mapIt.value()->end();it++)
				{
					if ((*it)->startTime>=i*1000 && (*it)->startTime<=(i+1)*1000)
					{
						//计算TimeLine起始位置
						
						float startX=mZoom*((*it)->startTime/1000.0);
						painter.drawRoundedRect (QRectF(startX,28+mapIt.key()*15+mapIt.key()*3,mZoom*((*it)->len()/1000.0),15),5,3);
					}
				}
				
			}

			//绘制对齐线
			painter.setPen(GrayPen);
			painter.drawLine(QPointF(mZoom*i,15),QPointF(mZoom*i,event->rect().bottom()));
			painter.setPen(pen);
		}
		else
		{
			break;
		}
	}
	
	//绘制当前位置
	QPen redPen(QColor(255,0,0,125));
	painter.setPen(redPen);
	painter.setBrush(QBrush(QColor(255,0,0,125)));
	float startX=mZoom*(mCurrTime/1000.0);
	
	painter.drawLine(QPointF(startX,25),QPointF(startX,event->rect().bottom()));
	painter.drawRect(QRect(startX-3,10,6,15));

	//绘制工具提示
	
	if(!mToopTip.isEmpty())
	{
		redPen.setColor(QColor(255,0,0));
		painter.setBrush(QBrush(QColor(255,255,255)));
		painter.setPen(redPen);
		QFontMetrics fm(painter.font());
		painter.drawRect(QRect(mToolTipX-3,mToolTipY-fm.height(),fm.width(mToopTip)+3,fm.height()+6));
		painter.drawText(mToolTipX,mToolTipY,mToopTip);
	}

		
}