• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ dc函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中dc函数的典型用法代码示例。如果您正苦于以下问题:C++ dc函数的具体用法?C++ dc怎么用?C++ dc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了dc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: dc

///////////////////////////////////////////////////////////////////////////////
// OnPaint
void CXHTMLStatic::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	// get text from control
	CString strText = _T("");
	GetWindowText(strText);

	// replace character entity names with codes

	TCHAR ent[3] = { 0 };
	ent[0] = _T('\001');	// each entity name is replaced with a two-character
							// code that begins with \001

	for (int i = 0; m_aCharEntities[i].pszName != NULL; i++)
	{
		ent[1] = m_aCharEntities[i].cCode;
		strText.Replace(m_aCharEntities[i].pszName, ent);
	}

	CString str1 = _T("");
	int index = 0;

	// set text and background colors
	COLORREF crText = m_crText;
	COLORREF prev_crText = crText;

	COLORREF crBackground = m_crBackGround;
	COLORREF prev_crBackground = crBackground;

	CFont *pOldFont = dc.SelectObject(&m_font);
	int n = strText.GetLength();

	CRect rect;
	GetClientRect(&rect);

	//dc.FillSolidRect(&rect, m_crBackGround);

	// allow for margins
	rect.left += m_nLeftMargin;
	rect.right -= m_nRightMargin;

	int nInitialXOffset = 0;//m_nLeftMargin;
	m_yStart = rect.top;

	LOGFONT lf, prev_lf;
	if (m_bLogFont)
	{
		memcpy(&lf, &m_lf, sizeof(lf));
	}
	else
	{
		CFont* cf = GetFont();
		if (cf)
			cf->GetObject(sizeof(lf), &lf);
		else
			GetObject(GetStockObject(SYSTEM_FONT), sizeof(lf), &lf);
	}
	memcpy(&prev_lf, &lf, sizeof(lf));

	CString strAnchorText = _T("");

	BOOL bSizeChange = FALSE;
	//BOOL bEndOfSizeChange = FALSE;
	TEXTMETRIC tm;
	dc.GetTextMetrics(&tm);

	while (n > 0)
	{
		///////////////////////////////////////////////////////////////////////
		if (_tcsnicmp(strText, _T("<B>"), 3) == 0)	// check for <b> or <B>
		{
			n -= 3;
			index = strText.Find(_T('>'));
			if (index != -1)
				strText = strText.Mid(index+1);
			m_bBold++;// = TRUE;
			continue;
		}
		///////////////////////////////////////////////////////////////////////
		else if (_tcsnicmp(strText, _T("</B>"), 4) == 0)	// check for </B>
		{
			n -= 4;
			index = strText.Find(_T('>'));
			if (index != -1)
				strText = strText.Mid(index+1);
			if (m_bBold)
				m_bBold--;// = FALSE;
			continue;
		}
		///////////////////////////////////////////////////////////////////////
		else if (_tcsnicmp(strText, _T("<I>"), 3) == 0)	// check for <I>
		{
			n -= 3;
			index = strText.Find(_T('>'));
			if (index != -1)
				strText = strText.Mid(index+1);
			m_bItalic++;// = TRUE;
//.........这里部分代码省略.........
开发者ID:Bitfall,项目名称:AppWhirr-client,代码行数:101,代码来源:XHTMLStatic.cpp


示例2: dc

void CTimeEv::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	GetClientRect(m_MainRect);
	m_SpikesRect = m_MainRect;
	m_SpikesRect.left += 11;
	m_SpikesRect.top += 11;
	m_SpikesRect.right -= 100; // -10
	m_SpikesRect.bottom -= 219; //  179; // 209

	CDC dcTemp;
	CBitmap bmTemp;
	bmTemp.CreateCompatibleBitmap(&dc,m_SpikesRect.right,m_SpikesRect.bottom);
	dcTemp.CreateCompatibleDC(&dc);
	CBitmap* bmOld = dcTemp.SelectObject(&bmTemp);
	
	// main RECTANGLE
	dcTemp.Rectangle(m_SpikesRect);
	
	m_SpikesRect.left += 1;
	m_SpikesRect.right -= 1;
	m_SpikesRect.bottom -= 1;
	m_SpikesRect.top += 1;

	// AXIS for SCALE
	int raster = m_SpikesRect.Width() / 10;
	CPen rasterPen(PS_SOLID,1, RGB(230,230,230)) , rasterPenRed(PS_SOLID,1,RGB(200,0,0));
	CPen *pOldRasterPen = dcTemp.SelectObject(&rasterPen);
	for (int iRaster = 1; iRaster < 10; iRaster++)
	{	if(iRaster==5) //paint middle line as red
		{	dcTemp.SelectObject(&rasterPenRed);
			dcTemp.MoveTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.top);
			dcTemp.LineTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.bottom);
			dcTemp.SelectObject(&rasterPen);
		}
		else	//paint other lines as gray
		{	dcTemp.MoveTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.top);
			dcTemp.LineTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.bottom);
		}
	}
	dcTemp.SelectObject(pOldRasterPen);

	m_ArenaRect = m_MainRect;
	m_ArenaRect.left += 280;
	m_ArenaRect.bottom -= 47;  // 45
	m_ArenaRect.top = m_ArenaRect.bottom - 130; 
	m_ArenaRect.right = m_ArenaRect.left + 130;
	m_ArenaRect.left += 1;
	m_ArenaRect.top += 1;
	m_ArenaRect.right -= 1;
	m_ArenaRect.bottom -= 1;

	m_RoomRect = m_MainRect;
	m_RoomRect.left += 11;
	m_RoomRect.bottom -= 47; //45
	m_RoomRect.top = m_RoomRect.bottom - 130; 
	m_RoomRect.right = m_RoomRect.left + 130;
	m_RoomRect.left += 1;
	m_RoomRect.top += 1;
	m_RoomRect.right -= 1;
	m_RoomRect.bottom -= 1;

	int oldBkMode = dc.SetBkMode( TRANSPARENT );
	dc.TextOut(m_ArenaRect.left, m_ArenaRect.top - 10, "Arena");
	dc.TextOut(m_RoomRect.left, m_RoomRect.top - 10, "Room");
	dc.TextOut(m_MainRect.right - 227, m_MainRect.bottom - 207, "Time window [ms]");
	dc.TextOut(m_MainRect.right - 167, m_MainRect.bottom - 137, "PlaySpeed");
	dc.SetBkMode( oldBkMode );

	unsigned char checked = 0;
	char			params;
	unsigned char	spikesCh, eegCh;
	CRect			signalRect = m_SpikesRect;
	float oneWinY = 0.0f;
	
	if(mPrepareFlag)
		checked = GetParameters( & spikesCh, & eegCh );
	
	if (checked)
	{
		oneWinY = m_SpikesRect.Height() / ( spikesCh + eegCh );

		dc.Ellipse(m_ArenaRect);
		dc.Ellipse(m_RoomRect);

		// Arena win
		if ( (m_MainDataStack->InBpfExist & 1) || (m_MainDataStack->LoadedAdd & 1) )
		{
			params = 2; // iixxxooo, xxx - points/circles/vectors, ooo - arena/room
			params += 8 * m_wndCmbArena.GetCurSel();
				m_MainDataStack->m_MainSyncStack.DrawArenaRoom(&dc,m_ArenaRect, timeStampFirst + 10*startTime, timeWindow, params, &clView[0], m_MainDataStack->whichDraw);
		}

		// Room win
		if ( (m_MainDataStack->InBpfExist & 2) || (m_MainDataStack->LoadedAdd & 2) )
		{
			params = 4; // iixxxooo, xxx - points/circles/vectors, ooo - arena/room
			params += 8 * m_wndCmbRoom.GetCurSel();
				m_MainDataStack->m_MainSyncStack.DrawArenaRoom(&dc,m_RoomRect, timeStampFirst + 10*startTime, timeWindow, params, &clView[0], m_MainDataStack->whichDraw);
//.........这里部分代码省略.........
开发者ID:FentonLab,项目名称:WClust_src,代码行数:101,代码来源:TimeEv.cpp


示例3: dc

void CSHeaderCtrl::OnPaint() 
{
	CPaintDC dc(this);
	CMemDC memDC(&dc);
	DrawCtrl(&memDC);
}
开发者ID:killbug2004,项目名称:cosps,代码行数:6,代码来源:SHeaderCtrl.cpp


示例4: dc

//重画函数
void CPalatesNeck::OnPaint() 
{
	CPaintDC dc(this); 
	dc.SelectObject(&m_Font);
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(255,255,255));
//	dc.SelectObject(&CGameImageLink::m_HFont);

	CGameImageHelper ImageHandle(&m_BackBmp);
	ImageHandle.BitBlt(dc,0,0,ImageHandle.GetWidth(),ImageHandle.GetHeight(),0,0);

	dc.SetTextColor(RGB(0,0,0));
	dc.TextOut(81,120,"用户名",lstrlen("用户名"));
	dc.TextOut(80,121,"用户名",lstrlen("用户名"));
	dc.SetTextColor(RGB(255,255,255));
	dc.TextOut(80,120,"用户名",lstrlen("用户名"));

	dc.SetTextColor(RGB(0,0,0));
	dc.TextOut(221,120,"成绩",lstrlen("成绩"));
	dc.TextOut(220,121,"成绩",lstrlen("成绩"));
	dc.SetTextColor(RGB(255,255,255));
	dc.TextOut(220,120,"成绩",lstrlen("成绩"));

	//显示经验值
	int dJianGe=160/m_bGamePeople;
	int iStation=0;
	TCHAR szBuffer[30];
	memset(szBuffer,0,sizeof(szBuffer));
	for (BYTE i=0;i<m_bGamePeople;i++)
	{
		if (m_strName[i].IsEmpty()==false)
		{
			dc.SetTextColor(RGB(0,0,0));
			dc.TextOut(81,(int)(iStation*dJianGe+140),m_strName[i]);
			dc.TextOut(80,(int)(iStation*dJianGe+141),m_strName[i]);
			dc.SetTextColor(RGB(255,255,255));
			dc.TextOut(80,(int)(iStation*dJianGe+140),m_strName[i]);
			wsprintf(szBuffer,TEXT("%ld"),m_dwPoint[i]);

			dc.SetTextColor(RGB(0,0,0));
			dc.TextOut(221,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
			dc.TextOut(220,(int)(iStation*dJianGe+141),szBuffer,lstrlen(szBuffer));
			dc.SetTextColor(RGB(255,255,255));
			dc.TextOut(220,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
			iStation++;
		}
	}

	//显示税收
	if ((m_bShowTax==true)&&(iStation>0))
	{
		dc.SetTextColor(RGB(0,0,0));
		dc.TextOut(81,(int)(iStation*dJianGe+140),TEXT("交易税"),lstrlen(TEXT("交易税")));
		dc.TextOut(80,(int)(iStation*dJianGe+141),TEXT("交易税"),lstrlen(TEXT("交易税")));
		dc.SetTextColor(RGB(255,255,255));
		dc.TextOut(80,(int)(iStation*dJianGe+140),TEXT("交易税"),lstrlen(TEXT("交易税")));
		wsprintf(szBuffer,"%ld",m_dwGameTax);

		dc.SetTextColor(RGB(0,0,0));
		dc.TextOut(221,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
		dc.TextOut(220,(int)(iStation*dJianGe+141),szBuffer,lstrlen(szBuffer));
		dc.SetTextColor(RGB(255,255,255));
		dc.TextOut(220,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
	}

	return;
}
开发者ID:lincoln56,项目名称:robinerp,代码行数:68,代码来源:GameEndView.cpp


示例5: dc

void CSplashScreenEx::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	DrawWindow(&dc);
}
开发者ID:YOlodfssdf,项目名称:evolution3d,代码行数:5,代码来源:SplashScreenEx.cpp


示例6: dc

void CNCaptureView::ClientToDoc(CRect* pRect)
{
	CWindowDC dc(m_hWnd);
	PrepareDC(dc.m_hDC);
	dc.DPtoLP((LPPOINT)pRect, 2);
}
开发者ID:moon-sky,项目名称:fishjam-template-library,代码行数:6,代码来源:nCaptureView.cpp


示例7: dc

void IW::CRender::DrawFocusRect(LPCRECT lpRect)
{
	IW::CDCRender dc(*this);
	dc.DrawFocusRect(lpRect);
}
开发者ID:ZacWalk,项目名称:ImageWalker,代码行数:5,代码来源:Render.cpp


示例8: GetSelectedItem

HBRUSH CXTPPropertyPageTabNavigator::GetPageBrush(CDC* pDC, CXTPPropertyPage* pPage)
{
	COLORREF clrClient = COLORREF_NULL;

	if (GetPaintManager()->GetColor() == xtpTabColorWinNative)
	{
		clrClient = COLOR_WINXP;
	}
	else
	{
		CXTPTabManagerItem* pItem = GetSelectedItem();
		if (!pItem)
			return NULL;

		clrClient = GetPaintManager()->GetColorSet()->GetItemColor(pItem);
	}

	if (m_clrBrush != clrClient)
	{
		m_brushPage.DeleteObject();
		m_clrBrush = clrClient;
	}

	if (m_brushPage.GetSafeHandle())
		return m_brushPage;

	if (m_clrBrush == GetXtremeColor(COLOR_3DFACE))
		return 0;

	if (m_clrBrush != COLOR_WINXP)
	{
		m_brushPage.CreateSolidBrush(m_clrBrush);
		return m_brushPage;

	}

	if (m_brushPage.GetSafeHandle() == 0)
	{
		CXTPClientRect rc(pPage);
		if (rc.IsRectEmpty())
			 return 0;

		CXTPWinThemeWrapper wrapper;
		wrapper.OpenTheme(0, L"TAB");

		if (!wrapper.IsAppThemed())
			return 0;

		CBitmap bmp;
		bmp.CreateCompatibleBitmap(pDC, rc.Width(), rc.Height());
		{
			CRect   rectContent(0, 0, 0, 0);
			if (FAILED(wrapper.GetThemeBackgroundContentRect(pDC->GetSafeHdc(), TABP_PANE, 0, rc, rectContent)))
			{
				rectContent = rc;
				rectContent.DeflateRect(2, 2, 4, 4);
			}

			CRect rcPane(-rectContent.left, -rectContent.top, rc.right + (rc.right - rectContent.right),
				rc.bottom + (rc.bottom - rectContent.bottom));

			CXTPCompatibleDC dc(pDC, bmp);
			wrapper.DrawThemeBackground(dc, TABP_PANE, 0, rcPane, 0);
		}

		m_brushPage.Attach( ::CreatePatternBrush(bmp));
	}

	return m_brushPage;
}
开发者ID:lai3d,项目名称:ThisIsASoftRenderer,代码行数:70,代码来源:XTPPropertyPageNavigator.cpp


示例9: dc

void CSizingControlBar::OnPaint()
{
    // overridden to skip border painting based on clientrect
    CPaintDC dc(this);
}
开发者ID:nykma,项目名称:ykt4sungard,代码行数:5,代码来源:sizecbar.cpp


示例10: GetMinNotMinimisedSize

wxSize wxRibbonPanel::DoGetNextLargerSize(wxOrientation direction,
                                        wxSize relative_to) const
{
    if(m_expanded_panel != NULL)
    {
        // Next size depends upon children, who are currently in the
        // expanded panel
        return m_expanded_panel->DoGetNextLargerSize(direction, relative_to);
    }

    if(IsMinimised(relative_to))
    {
        wxSize current = relative_to;
        wxSize min_size = GetMinNotMinimisedSize();
        switch(direction)
        {
        case wxHORIZONTAL:
            if(min_size.x > current.x && min_size.y == current.y)
                return min_size;
            break;
        case wxVERTICAL:
            if(min_size.x == current.x && min_size.y > current.y)
                return min_size;
            break;
        case wxBOTH:
            if(min_size.x > current.x && min_size.y > current.y)
                return min_size;
            break;
        default:
            break;
        }
    }

    if(m_art != NULL)
    {
        wxClientDC dc((wxRibbonPanel*) this);
        wxSize child_relative = m_art->GetPanelClientSize(dc, this, relative_to, NULL);
        wxSize larger(-1, -1);

        if(GetSizer())
        {
            // We could just let the sizer expand in flow direction but see comment
            // in IsSizingContinuous()
            larger = GetPanelSizerBestSize();
            // and adjust for page in non flow direction
            if(m_art->GetFlags() & wxRIBBON_BAR_FLOW_VERTICAL)
            {
                 if(larger.x != child_relative.x)
                    larger.x = child_relative.x;
            }
            else if(larger.y != child_relative.y)
            {
                larger.y = child_relative.y;
            }
        }
        else if(GetChildren().GetCount() == 1)
        {
            // Simple (and common) case of single ribbon child
            wxWindow* child = GetChildren().Item(0)->GetData();
            wxRibbonControl* ribbon_child = wxDynamicCast(child, wxRibbonControl);
            if(ribbon_child != NULL)
            {
                larger = ribbon_child->GetNextLargerSize(direction, child_relative);
            }
        }

        if(larger.IsFullySpecified()) // Use fallback if !(sizer/child = 1)
        {
            if(larger == child_relative)
            {
                return relative_to;
            }
            else
            {
                return m_art->GetPanelSize(dc, this, larger, NULL);
            }
        }
    }

    // Fallback: Increase by 25% (equal to a prior or subsequent 20% decrease)
    // Note that due to rounding errors, this increase may not exactly equal a
    // matching decrease - an ideal solution would not have these errors, but
    // avoiding them is non-trivial unless an increase is by 100% rather than
    // a fractional amount. This would then be non-ideal as the resizes happen
    // at very large intervals.
    wxSize current(relative_to);
    if(direction & wxHORIZONTAL)
    {
        current.x = (current.x * 5 + 3) / 4;
    }
    if(direction & wxVERTICAL)
    {
        current.y = (current.y * 5 + 3) / 4;
    }
    return current;
}
开发者ID:iokto,项目名称:newton-dynamics,代码行数:96,代码来源:panel.cpp


示例11: dc

wxSize wxRibbonPanel::DoGetNextSmallerSize(wxOrientation direction,
                                         wxSize relative_to) const
{
    if(m_expanded_panel != NULL)
    {
        // Next size depends upon children, who are currently in the
        // expanded panel
        return m_expanded_panel->DoGetNextSmallerSize(direction, relative_to);
    }

    if(m_art != NULL)
    {
        wxClientDC dc((wxRibbonPanel*) this);
        wxSize child_relative = m_art->GetPanelClientSize(dc, this, relative_to, NULL);
        wxSize smaller(-1, -1);
        bool minimise = false;

        if(GetSizer())
        {
            // Get smallest non minimised size
            smaller = GetMinSize();
            // and adjust to child_relative for parent page
            if(m_art->GetFlags() & wxRIBBON_BAR_FLOW_VERTICAL)
            {
                 minimise = (child_relative.y <= smaller.y);
                 if(smaller.x < child_relative.x)
                    smaller.x = child_relative.x;
            }
            else
            {
                minimise = (child_relative.x <= smaller.x);
                if(smaller.y < child_relative.y)
                    smaller.y = child_relative.y;
            }
        }
        else if(GetChildren().GetCount() == 1)
        {
            // Simple (and common) case of single ribbon child or Sizer
            wxWindow* child = GetChildren().Item(0)->GetData();
            wxRibbonControl* ribbon_child = wxDynamicCast(child, wxRibbonControl);
            if(ribbon_child != NULL)
            {
                smaller = ribbon_child->GetNextSmallerSize(direction, child_relative);
                minimise = (smaller == child_relative);
            }
        }

        if(minimise)
        {
            if(CanAutoMinimise())
            {
                wxSize minimised = m_minimised_size;
                switch(direction)
                {
                case wxHORIZONTAL:
                    minimised.SetHeight(relative_to.GetHeight());
                    break;
                case wxVERTICAL:
                    minimised.SetWidth(relative_to.GetWidth());
                    break;
                default:
                    break;
                }
                return minimised;
            }
            else
            {
                return relative_to;
            }
        }
        else if(smaller.IsFullySpecified()) // Use fallback if !(sizer/child = 1)
        {
            return m_art->GetPanelSize(dc, this, smaller, NULL);
        }
    }

    // Fallback: Decrease by 20% (or minimum size, whichever larger)
    wxSize current(relative_to);
    wxSize minimum(GetMinSize());
    if(direction & wxHORIZONTAL)
    {
        current.x = (current.x * 4) / 5;
        if(current.x < minimum.x)
        {
            current.x = minimum.x;
        }
    }
    if(direction & wxVERTICAL)
    {
        current.y = (current.y * 4) / 5;
        if(current.y < minimum.y)
        {
            current.y = minimum.y;
        }
    }
    return current;
}
开发者ID:iokto,项目名称:newton-dynamics,代码行数:97,代码来源:panel.cpp


示例12: dc

void cef_dark_aero_window::UpdateMenuBar()
{
    cef_buffered_dc dc(this);
    DrawMenuBar(dc);
}
开发者ID:adobe,项目名称:brackets-shell,代码行数:5,代码来源:cef_dark_aero_window.cpp


示例13: dcPaint

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(
//.........这里部分代码省略.........
开发者ID:ngphloc,项目名称:agmagic,代码行数:101,代码来源:ChildView.cpp


示例14: dc

void CHandGestureRecognitionSystemDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialogEx::OnPaint();
    }
    // set area
    int static_height = image_interval * 1;
    int static_width = image_interval * 20;
    MoveWindow(image_interval,
        image_interval,
        image_width * 2 + 4 * image_interval,
        image_height * 2 + 11 * image_interval);
    GetDlgItem(IDC_STATIC_CAMERA)->MoveWindow(
        image_interval * 1 + (image_width - static_width) / 2,
        image_interval * 1,
        static_width,
        static_height);
    GetDlgItem(IDC_STATIC_CAMERA)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
    GetDlgItem(IDC_IMAGE_CAMERA)->MoveWindow(
        image_interval * 1,
        image_interval * 3,
        image_width,
        image_height);
    GetDlgItem(IDC_STATIC_SEGMENT)->MoveWindow(
        image_interval * 1 + image_width + (image_width - static_width) / 2,
        image_interval * 1,
        static_width,
        static_height);
    GetDlgItem(IDC_STATIC_SEGMENT)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
    GetDlgItem(IDC_IMAGE_SEGMENT)->MoveWindow(
        image_interval * 2 + image_width,
        image_interval * 3,
        image_width,
        image_height);
    GetDlgItem(IDC_STATIC_FEATURE)->MoveWindow(
        image_interval * 1 + (image_width - static_width) / 2,
        image_interval * 4 + image_height,
        static_width,
        static_height);
    GetDlgItem(IDC_STATIC_FEATURE)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
    GetDlgItem(IDC_IMAGE_FEATURE)->MoveWindow(
        image_interval * 1,
        image_interval * 6 + image_height,
        image_width,
        image_height);
    GetDlgItem(IDC_STATIC_RECOGNITION)->MoveWindow(
        image_interval * 1 + image_width + (image_width - static_width) / 2,
        image_interval * 4 + image_height,
        static_width,
        static_height);
    GetDlgItem(IDC_STATIC_RECOGNITION)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
    GetDlgItem(IDC_IMAGE_RECOGNITION)->MoveWindow(
        image_interval * 2 + image_width,
        image_interval * 6 + image_height,
        image_width,
        image_height);
    GetDlgItem(IDC_BUTTON_PLAY_CAMERA)->MoveWindow(
        image_interval * 1,
        image_interval * 7 + image_height * 2,
        image_interval * 5,
        image_interval);
    GetDlgItem(IDC_BUTTON_STOP_CAMERA)->MoveWindow
        (image_interval * 7,
        image_interval * 7 + image_height * 2,
        image_interval * 5,
        image_interval);
    GetDlgItem(IDC_BUTTON_REFRESH_BACKGROUND)->MoveWindow(
        image_interval * 13,
        image_interval * 7 + image_height * 2,
        image_interval * 5,
        image_interval);
    GetDlgItem(ID_CLOSE)->MoveWindow(
        image_interval * 28,
        image_interval * 7 + image_height * 2,
        image_interval * 5,
        image_interval);
    // set font
    CFont testfont;
    testfont.CreatePointFont(110, "微软雅黑");
    GetDlgItem(IDC_STATIC_CAMERA)->SetFont(&testfont);
    GetDlgItem(IDC_STATIC_SEGMENT)->SetFont(&testfont);
    GetDlgItem(IDC_STATIC_FEATURE)->SetFont(&testfont);
//.........这里部分代码省略.........
开发者ID:chenxilinsidney,项目名称:HandGestureRecognitionSystem,代码行数:101,代码来源:HandGestureRecognitionSystemDlg.cpp


示例15: dc

//重画函数
void CControlWnd::OnPaint()
{
	CPaintDC dc(this);

	//获取位置
	CRect rcClient;
	GetClientRect(&rcClient);

	//创建缓冲
	CDC BufferDC;
	CBitmap BufferImage;
	BufferDC.CreateCompatibleDC(&dc);
	BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
	BufferDC.SelectObject(&BufferImage);

	//加载资源
	CImageHandle HandleControlTop(&m_ImageControlTop);
	CImageHandle HandleControlMid(&m_ImageControlMid);
	CImageHandle HandleControlButtom(&m_ImageControlButtom);
	CImageHandle HandleActionExplain(&m_ImageActionExplain);

	//绘画背景
	m_ImageControlTop.BitBlt(BufferDC,0,0);
	for (int nImageYPos=m_ImageControlTop.GetHeight();nImageYPos<rcClient.Height();nImageYPos+=m_ImageControlMid.GetHeight())
	{
		m_ImageControlMid.BitBlt(BufferDC,0,nImageYPos);
	}
	m_ImageControlButtom.BitBlt(BufferDC,0,rcClient.Height()-m_ImageControlButtom.GetHeight());

	//变量定义
	int nYPos=5;
	BYTE cbCurrentItem=0;
	BYTE cbExcursion[3]={0,1,2};
	BYTE cbItemKind[4]={WIK_LEFT,WIK_CENTER,WIK_RIGHT,WIK_PENG};

	//绘画扑克
	for (BYTE i=0;i<CountArray(cbItemKind);i++)
	{
		if ((m_cbActionMask&cbItemKind[i])!=0)
		{
			//绘画扑克
			for (BYTE j=0;j<3;j++)
			{
				BYTE cbCardData=m_cbCenterCard;
				if (i<CountArray(cbExcursion))
					cbCardData=m_cbCenterCard+j-cbExcursion[i];
				g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,cbCardData,j*26+12,nYPos+5);
			}

			//计算位置
			int nXImagePos=0;
			int nItemWidth=m_ImageActionExplain.GetWidth()/7;
			if ((m_cbActionMask&cbItemKind[i])&WIK_PENG)
				nXImagePos=nItemWidth;

			//绘画标志
			int nItemHeight=m_ImageActionExplain.GetHeight();
			m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nXImagePos,0);

			//绘画边框
			if (cbCurrentItem==m_cbCurrentItem)
			{
				BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0));
			}

			//设置变量
			++cbCurrentItem;
			nYPos+=ITEM_HEIGHT;
		}
	}

	//杠牌扑克
	for (BYTE i=0;i<CountArray(m_cbGangCard);i++)
	{
		if (m_cbGangCard[i]!=0)
		{
			//绘画扑克
			for (BYTE j=0;j<4;j++)
			{
				g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,m_cbGangCard[i],j*26+12,nYPos+5);
			}

			//绘画边框
			if (cbCurrentItem==m_cbCurrentItem)
			{
				BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0));
			}

			//绘画标志
			int nItemWidth=m_ImageActionExplain.GetWidth()/7;
			int nItemHeight=m_ImageActionExplain.GetHeight();
			m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nItemWidth*3,0);

			//设置变量
			cbCurrentItem++;
			nYPos+=ITEM_HEIGHT;
		}
		else
			break;
//.........这里部分代码省略.........
开发者ID:Michael-Z,项目名称:qipai-game,代码行数:101,代码来源:ControlWnd.cpp


示例16: dc

void CDockButton::OnPaint()
{
    CPaintDC dc(this); // device context for painting
    CBrush cb;
    COLORREF m_clrBorder=GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style);
    COLORREF m_clrFace=GuiDrawLayer::GetRGBColorFace(GuiDrawLayer::m_Style);
    CPen cp(PS_SOLID,1,m_clrFace);
    CPen* cpold=dc.SelectObject(&cp);
    CRect m_rect;
    GetClientRect(m_rect);
    cb.CreateSolidBrush(m_clrFace);
    if (GuiDrawLayer::m_Style== GUISTYLE_XP)
        dc.FillRect(m_rect,&cb);
    else
    {
        CGradient M(CSize(m_rect.Width(),m_rect.Height()));
        if (m_nDockBarAling ==AFX_IDW_DOCKBAR_LEFT || m_nDockBarAling ==AFX_IDW_DOCKBAR_RIGHT)
            M.PrepareCaptionVert(&dc,GuiDrawLayer::m_Style);
        else
            M.PrepareCaption(&dc,GuiDrawLayer::m_Style);
        M.Draw(&dc,m_rect.left,m_rect.top,0,0,m_rect.Width(),m_rect.Height(),SRCCOPY);
    }

    dc.Draw3dRect(m_rect,m_clrBorder,m_clrBorder);
    GuiDrawLayer::DrawIcon(&dc,CPoint(m_rect.left+2,m_rect.top+2),m_szBtn,m_hIcon);

    switch(m_nDockBarAling)
    {


    case AFX_IDW_DOCKBAR_TOP:
        dc.MoveTo(m_rect.left,m_rect.top);
        dc.LineTo(m_rect.right,m_rect.top);
        if(m_hIcon != NULL)
            m_rect.left+=m_szBtn.cx+4;
        DrawTextHorz(&dc,m_rect);
        break;
    case AFX_IDW_DOCKBAR_LEFT:
        dc.MoveTo(m_rect.left,m_rect.top);
        dc.LineTo(m_rect.left,m_rect.bottom);
        if(m_hIcon != NULL)
            m_rect.top+=m_szBtn.cy+4;
        DrawTextVert(&dc,m_rect);
        break;
    case AFX_IDW_DOCKBAR_RIGHT:
        dc.MoveTo(m_rect.right-1,m_rect.top);
        dc.LineTo(m_rect.right-1,m_rect.bottom);
        if(m_hIcon != NULL)
            m_rect.top+=m_szBtn.cy+4;
        DrawTextVert(&dc,m_rect);
        break;
    case AFX_IDW_DOCKBAR_BOTTOM:
        dc.MoveTo(m_rect.left,m_rect.bottom-1);
        dc.LineTo(m_rect.right,m_rect.bottom-1);
        if(m_hIcon != NULL)
            m_rect.left+=m_szBtn.cx+4;
        DrawTextHorz(&dc,m_rect);
        break;
    }
    dc.SelectObject(cpold);

}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:62,代码来源:GuiDockToolBarEx.cpp


示例17: new_bmp_sz

void wxVideoTerminal::DrawTexts()
{
	wxSize bmp_sz;

	if (mp_bitmap)
		bmp_sz = mp_bitmap->GetSize();
	
	// Calculate bitmap size according the viewport
	wxSize new_bmp_sz(m_screen_size.GetWidth() * m_font_size.GetWidth(), 
		wxMax(m_screen_size.GetHeight(),m_viewport.GetHeight()) *  m_font_size.GetHeight() );
	
	if (bmp_sz != new_bmp_sz)
	{
		if (mp_bitmap)
			delete mp_bitmap;

		mp_bitmap = new wxBitmap(new_bmp_sz.GetWidth(),  new_bmp_sz.GetHeight(), 24);

		if ( mp_bitmap )
		{
			m_redraw_bitmap = true;
			bmp_sz = new_bmp_sz;

			wxMemoryDC dc(*mp_bitmap);
			dc.SetBackground(brushes[0]);
			dc.Clear();
		}
	}

	if (!mp_bitmap) return;

	wxMemoryDC dc(*mp_bitmap);
	dc.SetFont( m_console_font );

	TCharAttr old_attr, attr;
	
	int j = m_scrollpos_row;
	int virtual_y = -1;
	{
		int scroll_gap = m_topscreen_row - m_scrollpos_row;
		virtual_y = m_screen_cur.y + scroll_gap;
	}
	
	wxPoint pt_sel_begin, pt_sel_end;
	if (m_isSelecting) {
		bool swap = false;

		if (m_ptBeginSelect.y == m_ptEndSelect.y) {
			if (m_ptBeginSelect.x > m_ptEndSelect.x) swap = true;
		} else if (m_ptBeginSelect.y > m_ptEndSelect.y) 
			swap = true;
		
		if (swap) {
			pt_sel_begin = m_ptEndSelect; 
			pt_sel_end = m_ptBeginSelect;
		} else {
			pt_sel_begin = m_ptBeginSelect; 
			pt_sel_end = m_ptEndSelect;
		}
	}

	int y;
	for (y=0; y < m_viewport.GetHeight() && j < m_botscreen_row; ++y, ++j)
	{
		wxTermLine &term_line = m_lines[j];
		// dirty if its line where cursor staying
		if (y == virtual_y || m_redraw_bitmap) term_line.dirty = true;
		if (m_isSelecting && pt_sel_begin.y <= j && pt_sel_end.y >= j) term_line.dirty = true;

		if (!term_line.dirty) continue;

		term_line.dirty = false;

		old_attr.value = 0;
		dc.SetBrush( brushes[0] );
		dc.SetPen( pens[0] );
		
		dc.DrawRectangle(0,y*m_font_size.GetHeight(), 
			bmp_sz.GetWidth(), m_font_size.GetHeight() );

		const int w = m_font_size.GetWidth();
		const int h = m_font_size.GetHeight();

		int x;
		int x2 = 0;
		int x1 = term_line.width;

		if (m_isSelecting && pt_sel_begin.y <= j && pt_sel_end.y >= j) {
			x2 = term_line.width;
			x1 = 0;
			if (j == pt_sel_begin.y)
				x1 = pt_sel_begin.x;
			if (j == pt_sel_end.y ) {
				if (pt_sel_end.x <= term_line.visible_width)
					x2 = pt_sel_end.x;
			}
		}

		for (x=0; x < m_screen_size.GetWidth(); ++x)
		{
//.........这里部分代码省略.........
开发者ID:firodj,项目名称:alumetro-wx,代码行数:101,代码来源:VideoTerminal.cpp


示例18: dc

// WaveformViewDialog message handlers
void WaveformViewDialog::OnPaint() {
  BufferredPaintDC dc(this);
  
  CRect rectTitle;
  GetDlgItem(IDC_PLACE_CAPTION)->GetWindowRect(&rectTitle);
  ScreenToClient(&rectTitle);
  dc.FillSolidRect(rectTitle, RGB(54, 133, 214));

  CRect waveformRect;
  GetDlgItem(IDC_PLACE_WAVEFORM)->GetWindowRect(&waveformRect);
  ScreenToClient(&waveformRect);
  dc.FillSolidRect(waveformRect, RGB(0, 0, 0));

  CFont *oldFont = dc.SelectObject(GuiResources::GetInstance()->GetFont(GuiResources::FONT_NORMAL));
  dc.SetTextColor(RGB(255, 255, 255));
  dc.SetBkMode(TRANSPARENT);
  CSize textSize = dc.GetTextExtent(_T("88888"));
  waveformRect.left += textSize.cx + 8;

  if (monitor_ != NULL && cashIndex_ != -1) {
    int cashCount = monitor_->Freeze();
    if (cashIndex_ < cashCount) {
      Cash *cash = monitor_->GetCash(cashIndex_);
      CPen penYellow(PS_SOLID, 1, RGB(255, 255, 0));
      CPen penGreen(PS_SOLID, 1, RGB(0, 255, 0));
      int count = cash->GetADCSampleCount(g_ADCChannels[channel_].id);      
      if (count > 0) {
        CString title;
        title.Format(_T("%s - %s"), (LPCTSTR)CA2T(cash->GetSN()), g_ADCChannels[channel_].name);
        labelTitle_.SetWindowText(title);

        const short *codes = cash->GetADCSampleCodes(g_ADCChannels[channel_].id);
        const short *values = cash->GetADCSampleValues(g_ADCChannels[channel_].id);
        
        // draw scaler
        __int64 sum = 0;
        short minValue = SHORT_MAX, maxValue = SHORT_MIN;
        for (int i = 0; i < count; i++) {
          if (values[i] < minValue) {
            minValue = values[i];
          }
          if (values[i] > maxValue) {
            maxValue = values[i];
          }
          sum += values[i];
        }
        CPen whitePen(PS_SOLID, 1, RGB(255, 255, 255));
        CPen *oldPen = dc.SelectObject(&whitePen);
        dc.MoveTo(waveformRect.left, waveformRect.top);
        dc.LineTo(waveformRect.left, waveformRect.bottom);
        
        int height = waveformRect.Height();
        int range = g_ADCChannels[channel_].maxValue - g_ADCChannels[channel_].minValue;
        // min
        CString label;
        int x = waveformRect.left - textSize.cx - 8;
        int y = waveformRect.bottom - (minValue - g_ADCChannels[channel_].minValue) * height / range;
        dc.MoveTo(waveformRect.left - 4, y);
        dc.LineTo(waveformRect.right, y);
        label.Format(_T("%d"), minValue);
        dc.TextOut(x, y - textSize.cy / 2, label);
        // center
        short median = (short)(sum / count);
        y = waveformRect.bottom - (median - g_ADCChannels[channel_].minValue) * height / range;
        dc.MoveTo(waveformRect.left - 4, y);
        dc.LineTo(waveformRect.right, y);
        label.Format(_T("%d"), median);
        dc.TextOut(x, y - textSize.cy / 2, label);
        // max
        y = waveformRect.bottom - (maxValue - g_ADCChannels[channel_].minValue) * height / range;
        dc.MoveTo(waveformRect.left - 4, y);
        dc.LineTo(waveformRect.right, y);
        label.Format(_T("%d"), maxValue);
        dc.TextOut(x, y - textSize.cy / 2, label);

        dc.SelectObject(oldPen);

        ::DrawWaveform(&dc, waveformRect, codes, codes[0], codes[count - 1], count, &penYellow);
        ::DrawWaveform(&dc, waveformRect, values, 
            g_ADCChannels[channel_].minValue, 
            g_ADCChannels[channel_].maxValue, count, &penGreen);
      }
    }
    monitor_->Unfreeze();
  }

  dc.SelectObject(oldFont);
}
开发者ID:ranjiewwen,项目名称:produce-management-sofaware,代码行数:89,代码来源:waveform_view_dialog.cpp


示例19: dc

void COpenCVInterfaceDlg::OnPaint()
{
	CPaintDC dc(this); // device context for painting

	//In variabila r1 pastrez dimensiunile ferestrei picture1
	CRect r1;
	GetClientRect(&r1);

	int w,h;

	if(mainImage.cols)
	{
		//aleg minimul dintre dimensiunile imag si ale ferestrei de afisare
		if(mainImage.cols<r1.Width()) w=mainImage.cols;
		else w=r1.Width();
		if(mainImage.rows<r1.Height()) h=mainImage.rows;
		else h=r1.Height();

		//creez un dreptunghi cu dimensiunile minime si il umplu cu peria imagine
		CRect r(0,0,w-1,h-1);
		dc.FillRect(r,ImageBrush);

		CMenu* mmenu =GetMenu();
		CMenu* submenu =mmenu->GetSubMenu(1);
		UINT state = submenu->GetMenuState(ID_TOOLS_GRAYLEVELROW,MF_BYCOMMAND);
		UINT state1 = submenu->GetMenuState(ID_TOOLS_GRAYLEVELCOLUMN,MF_BYCOMMAND);
		ASSERT(state != 0xFFFFFFFF);
		ASSERT(state1 != 0xFFFFFFFF);
		if(state & MF_CHECKED)
		{ 
			if(gr->GetY()<mainImage.rows)
			{
				gr->setGCheck(true);
				CPen *pen = new CPen(PS_SOLID,1,RGB(255,0,0));
				CPen *oldPen;
				oldPen=(CPen*)dc.SelectObject(pen);
				dc.MoveTo(0,gr->GetY());
				dc.LineTo(mainImage.cols,gr->GetY());
				dc.SelectObject(oldPen);
				delete pen;
			}
		}
		else
		{
			if(state1 & MF_CHECKED)
			{
				gr->setGCheck(false);
				if(gr->GetX()<mainImage.cols)
				{
					CPen *pen = new CPen(PS_SOLID,1,RGB(255,0,0));
					CPen *oldPen;
					oldPen=(CPen*)dc.SelectObject(pen);
					dc.MoveTo(gr->GetX(),0);
					dc.LineTo(gr->GetX(),mainImage.rows);
					dc.SelectObject(oldPen);
					delete pen;
				}
			}

		}
	}
}
开发者ID:alduleacristi,项目名称:proiect-procesare-imagini,代码行数:62,代码来源:OpenCVInterfaceDlg.cpp


示例20: GetDocument

void CEx_DrawView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
    CEx_DrawDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    m_ptLocalScroll = GetScrollPosition();
    CPoint ptLocal = point + m_ptLocalScroll;

    m_ 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ dc1394_video_set_transmission函数代码示例发布时间:2022-05-30
下一篇:
C++ dbus_watch_get_unix_fd函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap