Beispiel #1
0
void Window::DrawOnRegion()
{
	if (!m_bVisible)
		return;

	TYPE_WindowColor& colors = m_pWinData->win.color;

	CRect rcTitle(CPoint(m_pWinData->win.titleX, m_pWinData->win.titleY), CSize(m_pWinData->win.titleW, m_pWinData->win.titleH));
	m_pRegion->DrawTextInBox(rcTitle, m_sTitle, colors.titleText, colors.titleBack, colors.border, 0, 1, DT_CENTER|DT_VCENTER);

	CRect rcBody(CPoint(m_pWinData->win.bodyX, m_pWinData->win.bodyY), CSize(m_pWinData->win.bodyW, m_pWinData->win.bodyH));
	m_pRegion->DrawFilledBox(rcBody, m_pWinData->win.color.bodyBack, m_pWinData->win.color.border);

	int itemsOnScreen = CalcItemsOnScreen();
	int itemHeight = CalcItemHeight();

	for (int i=0 ; i<itemsOnScreen ; i++)
	{	
		int iIndex = i + m_pWinData->startPos;
		if (iIndex >= m_pWinData->itemNum)
			break;
		int yOffs = i * itemHeight;
		CRect rcBox(CPoint(m_pWinData->win.bodyX, m_pWinData->win.bodyY + yOffs),
			CSize(m_pWinData->win.bodyW, itemHeight));
			
		m_pRegion->DrawTextInBox(rcBox, m_sItems[iIndex], colors.bodyText,
			iIndex == m_pWinData->currentPos ? colors.check : colors.bodyBack, colors.border, 0,  1, DT_LEFT|DT_VCENTER);
	}
}
void CEditView_Paint::Call_OnPaint(
	int nPaintFlag,   //!< 描画する領域を選択する
	bool bUseMemoryDC //!< メモリDCを使用する
)
{
	CEditView* pView = GetEditView();

	//各要素
	CMyRect rcLineNumber(0,pView->GetTextArea().GetAreaTop(),pView->GetTextArea().GetAreaLeft(),pView->GetTextArea().GetAreaBottom());
	CMyRect rcRuler(pView->GetTextArea().GetAreaLeft(),0,pView->GetTextArea().GetAreaRight(),pView->GetTextArea().GetAreaTop());
	CMyRect rcBody(pView->GetTextArea().GetAreaLeft(),pView->GetTextArea().GetAreaTop(),pView->GetTextArea().GetAreaRight(),pView->GetTextArea().GetAreaBottom());

	//領域を作成 -> rc
	std::vector<CMyRect> rcs;
	if(nPaintFlag & PAINT_LINENUMBER)rcs.push_back(rcLineNumber);
	if(nPaintFlag & PAINT_RULER)rcs.push_back(rcRuler);
	if(nPaintFlag & PAINT_BODY)rcs.push_back(rcBody);
	if(rcs.size()==0)return;
	CMyRect rc=rcs[0];
	int nSize = (int)rcs.size();
	for(int i=1;i<nSize;i++)
		rc=MergeRect(rc,rcs[i]);

	//描画
	PAINTSTRUCT	ps;
	ps.rcPaint = rc;
	HDC hdc = pView->GetDC();
	pView->OnPaint( hdc, &ps, bUseMemoryDC );
	pView->ReleaseDC( hdc );
}
void QColorTabWidget::paintEvent(QPaintEvent *)
{
    QPainter p(this);

    p.save();

    p.setRenderHint(QPainter::Antialiasing);

    QRect rcBody(0, 0, width()-1, height()-1);
    rcBody.adjust( 1, 1, -1, -1 );

    drawTabs(p, rcBody);

    p.restore();
}