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(); }