FlowTextManager::FlowTextManager() { xs::Rect rc1 (0,-200,100,-150); mFlowArea[FlowArea_Top].create(rc1, 0.03, 0.7,true,true,true); xs::Rect rc2 (-50,0,100,200); mFlowArea[FlowArea_Bottom].create(rc2, 0.05, 0.8); xs::Rect rc3 (100,100,400,200); mFlowArea[FlowArea_Right].create(rc3, 0.05, 1,true,false,false,false); //xs::Rect rc4 = {-100,-220,100,-20}; //mFlowArea[FlowArea_Mouse].create(rc4, 0.0005, 0.8, false); }
void CSimplePanelDlg::InitPannel() { CDC* pDC = GetDC(); char curDir[160] = {0}; WCHAR wcurDir[160] = {0}; GetCurrentDirectory(160, curDir); ZeroMemory(wcurDir, sizeof(wcurDir)); CString strImPath = curDir; strImPath += _T("\\Res\\linepannel_simple.png"); MultiByteToWideChar(CP_ACP, 0, (char*)(LPCTSTR)strImPath, strImPath.GetLength(), wcurDir, 160); m_pImLineBK = new Gdiplus::Image(wcurDir); int nHeight = m_pImLineBK->GetHeight(); int nWidth = m_pImLineBK->GetWidth(); CRect rc1(0, 46, 539, nHeight + 46); CEsayMemDC* pMemDC = new CEsayMemDC(*pDC, rc1); m_vecMemDC.push_back(pMemDC); CRect rc2(542, 46, 1080, nHeight + 46); pMemDC = new CEsayMemDC(*pDC, rc2); m_vecMemDC.push_back(pMemDC); CRect rc3(0, nHeight + 52, 540, nHeight*2 + 52); pMemDC = new CEsayMemDC(*pDC, rc3); m_vecMemDC.push_back(pMemDC); CRect rc4(542, nHeight + 52, 1080, nHeight*2 + 52); pMemDC = new CEsayMemDC(*pDC, rc4); m_vecMemDC.push_back(pMemDC); CRect rc5(0, nHeight*2 + 58, 540, nHeight*3 + 58); pMemDC = new CEsayMemDC(*pDC, rc5); m_vecMemDC.push_back(pMemDC); CRect rc6(542, nHeight*2 + 58, 1080, nHeight*3 + 58); pMemDC = new CEsayMemDC(*pDC, rc6); m_vecMemDC.push_back(pMemDC); ReleaseDC(pDC); }
void ControlPointsWidget::mouseMoveEvent ( QMouseEvent * evnt ) { QPoint pt = evnt->pos(); if ( !m_bDragging ) { SetMouseCursor( pt ); } else { QRect rcBounds = m_rcChartPlotArea.adjusted(0,0,1,1); if ( !rcBounds.contains(pt) ) { // Cursor trying to move out of area pt = ClipPoint( rcBounds, pt ); } // Invalidate the rectangle that bounds the old point and joining line segments. //int x = ScaleX(m_Points[m_nFocusPoint].lP); //int y = ScaleY(m_Points[m_nFocusPoint].dwLog); //x += m_ptDragOffset.x; //y += m_ptDragOffset.y; //x = SnapScreenX(x); //y = SnapY(y); int x = ScaleX(m_ptDragCPoint.x()); int y = ScaleY(m_ptDragCPoint.y()); QRect rcInvalid; if ( m_nFocusPoint == 0 ) { int x1 = ScaleX(m_Points[1].lP); int y1 = ScaleY(m_Points[1].dwLog); QRect rc1(x-3,y-3,x+3,y+3 ); QRect rc2(x1-3,y1-3,x1+3,y1+3 ); rc1 = rc1.normalized(); rc2 = rc2.normalized(); rc1.adjust(-1,-1,1,1); rc2.adjust(-1,-1,1,1); rcInvalid = rc1.united( rc2 ); } else if ( m_nFocusPoint == (int)m_Points.size()-1 ) { int x1 = ScaleX(m_Points[m_nFocusPoint-1].lP); int y1 = ScaleY(m_Points[m_nFocusPoint-1].dwLog); QRect rc1(x-3,y-3,x+3,y+3 ); QRect rc2(x1-3,y1-3,x1+3,y1+3 ); rc1 = rc1.normalized(); rc2 = rc2.normalized(); rc1.adjust(-1,-1,1,1); rc2.adjust(-1,-1,1,1); rcInvalid = rc1.united( rc2 ); } else { QRect rc1(x-3,y-3,x+3,y+3 ); rc1 = rc1.normalized(); rc1.adjust(-1,-1,1,1); int x1 = ScaleX(m_Points[m_nFocusPoint-1].lP); int y1 = ScaleY(m_Points[m_nFocusPoint-1].dwLog); QRect rc2(x1-3,y1-3,x1+3,y1+3 ); rc2 = rc2.normalized(); rc2.adjust(-1,-1,1,1); x1 = ScaleX(m_Points[m_nFocusPoint+1].lP); y1 = ScaleY(m_Points[m_nFocusPoint+1].dwLog); QRect rc3(x1-3,y1-3,x1+3,y1+3 ); rc3 = rc3.normalized(); rc3.adjust(-1,-1,1,1); QRect temp; temp = rc1.united(rc2); rcInvalid = temp.united( rc3 ); } // Update the drag offset. This will be repainted in the paint routine. //m_ptDragOffset = pt - m_ptDragPickup; m_ptDragCPoint.setX( SnapX(UnscaleX(pt.x())) ); m_ptDragCPoint.setY( SnapY(UnscaleY(pt.y())) ); update( rcInvalid ); } //CRect rcBounds(m_rcChartPlotArea.left, m_rcChartPlotArea.top, m_rcChartPlotArea.right+1, m_rcChartPlotArea.bottom + 1 ); //if ( rcBounds.PtInRect(pt) ) //{ // int x = UnscaleX( SnapScreenX(pt.x )); // int y = UnscaleY( SnapY(pt.y )); // TRACE("%d, %d\n", x, y ); //} if ( m_rcChartPlotArea.contains( pt ) ) emit mousePositionChanged( SnapX(UnscaleX(pt.x())), SnapX(UnscaleY(pt.y())) ); }
void CChildView::OnPaint() { CPaintDC dcPaint( this ); CExtPaintManager::stat_ExcludeChildAreas( dcPaint.GetSafeHdc(), GetSafeHwnd() ); CExtMemoryDC dc( &dcPaint ); CGdiObject * pOld0, * pOld1; CExtWndShadow _shadow; WORD _PatternBits0[8],_PatternBits1[8]; for( INT iPatternLine=0; iPatternLine < 8; iPatternLine++ ) { _PatternBits0[iPatternLine] = ( iPatternLine & 1 ) ? WORD(0xFFFF) : WORD( ~ ( 5<<iPatternLine ) ) ; _PatternBits1[iPatternLine] = ( iPatternLine & 1 ) ? WORD(0xFFFF) : WORD( ~ ( 1<<(8-iPatternLine) ) ) ; } CBitmap bmpPattern0,bmpPattern1; CBrush brPattern0,brPattern1; VERIFY( bmpPattern0.CreateBitmap(8,8,1,1,_PatternBits0) ); VERIFY( bmpPattern1.CreateBitmap(8,8,1,1,_PatternBits1) ); VERIFY( brPattern0.CreatePatternBrush(&bmpPattern0) ); VERIFY( brPattern1.CreatePatternBrush(&bmpPattern1) ); CRect rcPattern0(10,10,180,150), rcPattern1(40,30,80,200); dc.FillRect(rcPattern0,&brPattern0); _shadow.Paint( dc, rcPattern0, CRect(0,0,0,0), CRect(0,0,0,0), CExtWndShadow::DEF_SHADOW_SIZE, CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX, false ); pOld0 = dc.SelectStockObject( NULL_BRUSH ); pOld1 = dc.SelectStockObject( BLACK_PEN ); dc.Rectangle( rcPattern0 ); if( pOld0 != NULL ) dc.SelectObject( pOld0 ); if( pOld1 != NULL ) dc.SelectObject( pOld1 ); dc.FillRect(rcPattern1,&brPattern1); _shadow.Paint( dc, rcPattern1, CRect(0,0,0,0), CRect(0,0,0,0), CExtWndShadow::DEF_SHADOW_SIZE, CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX, false ); pOld0 = dc.SelectStockObject( NULL_BRUSH ); pOld1 = dc.SelectStockObject( BLACK_PEN ); dc.Rectangle( rcPattern1 ); if( pOld0 != NULL ) dc.SelectObject( pOld0 ); if( pOld1 != NULL ) dc.SelectObject( pOld1 ); CRect rc0(20,50,160,80); CRect rc1(160,50,210,80); CRect rc2(rc0.left,rc0.top,rc1.right,rc1.bottom); COLORREF clrLeft = RGB(0,255,0); COLORREF clrMiddle = RGB(255,255,0); COLORREF clrRight = RGB(255,0,0); CExtPaintManager::stat_PaintGradientRect( dc, rc0, clrLeft, clrMiddle ); CExtPaintManager::stat_PaintGradientRect( dc, rc1, clrMiddle,clrRight ); _shadow.Paint( dc, rc2, CRect(0,0,0,0), CRect(0,0,0,0), CExtWndShadow::DEF_SHADOW_SIZE, CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX, false ); pOld0 = dc.SelectStockObject( NULL_BRUSH ); pOld1 = dc.SelectStockObject( BLACK_PEN ); dc.Rectangle(rc2); if( pOld0 != NULL ) dc.SelectObject( pOld0 ); if( pOld1 != NULL ) dc.SelectObject( pOld1 ); CRect rc3(120,40,150,80); CRect rc4(120,80,150,160); CRect rc5(rc3.left,rc3.top,rc4.right,rc4.bottom); COLORREF clrUpper = RGB(255,0,255); COLORREF clrMiddleV = RGB(255,255,255); COLORREF clrLower = RGB(0,0,255); CExtPaintManager::stat_PaintGradientRect( dc, rc3, clrMiddleV, clrUpper, TRUE ); CExtPaintManager::stat_PaintGradientRect( dc, rc4, clrLower, clrMiddleV, TRUE ); _shadow.Paint( dc, rc5, CRect(0,0,0,0), CRect(0,0,0,0), CExtWndShadow::DEF_SHADOW_SIZE, CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX, false ); pOld0 = dc.SelectStockObject( NULL_BRUSH ); pOld1 = dc.SelectStockObject( BLACK_PEN ); dc.Rectangle(rc5); if( pOld0 != NULL ) dc.SelectObject( pOld0 ); if( pOld1 != NULL ) dc.SelectObject( pOld1 ); }