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

C++ GetBitmap函数代码示例

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

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



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

示例1: GetHbitmapOf

size_t wxBitmapDataObject::GetDataSize() const
{
#if wxUSE_WXDIB
    return wxDIB::ConvertFromBitmap(NULL, GetHbitmapOf(GetBitmap()));
#else
    return 0;
#endif
}
开发者ID:Teodorrrro,项目名称:wxWidgets,代码行数:8,代码来源:dataobj.cpp


示例2: wxCHECK_MSG

wxObject * MaxBitmapComboBoxXmlHandler::DoCreateResource()
{
    if (m_class == wxT("ownerdrawnitem"))
    {
        wxCHECK_MSG(m_combobox, NULL, wxT("Incorrect syntax of XRC resource: ownerdrawnitem not within a bitmapcombobox!"));

        m_combobox->Append(GetText(wxT("text")), GetBitmap(wxT("bitmap"), wxART_MISSING_IMAGE));

        return m_combobox;
    }
    else /*if( m_class == wxT("wxBitmapComboBox"))*/
    {
        // find the selection
        long selection = GetLong( wxT("selection"), -1 );

        XRC_MAKE_INSTANCE(control, MaxBitmapComboBox)

        control->Create(m_parentAsWindow,
                        GetID(),
                        GetText(wxT("value")),
                        GetPosition(), GetSize(),
                        0,
                        NULL,
                        GetStyle(),
                        wxDefaultValidator,
                        GetName());

		control->MaxBind(_wx_wxbitmapcombobox_wxBitmapComboBox__xrcNew(control));

        m_isInside = true;
        m_combobox = control;

        wxXmlNode *children_node = GetParamNode(wxT("object"));

        wxXmlNode *n = children_node;

        while (n)
        {
            if ((n->GetType() == wxXML_ELEMENT_NODE) &&
                (n->GetName() == wxT("object")))
            {
                CreateResFromNode(n, control, NULL);
            }
            n = n->GetNext();
        }

        m_isInside = false;
        m_combobox = NULL;

        if (selection != -1)
            control->SetSelection(selection);

        SetupWindow(control);

        return control;
    }
}
开发者ID:BlitzMaxModules,项目名称:wx.mod,代码行数:57,代码来源:glue.cpp


示例3: wxStaticCast

wxObject* wxRibbonXmlHandler::Handle_galleryitem()
{
    wxRibbonGallery *gallery = wxStaticCast(m_parent, wxRibbonGallery);
    wxCHECK (gallery, NULL);

    gallery->Append (GetBitmap(), GetID());

    return NULL; // nothing to return
}
开发者ID:3v1n0,项目名称:wxWidgets,代码行数:9,代码来源:xh_ribbon.cpp


示例4: GetBitmap

void Sprite::Render(Bitmap& bitmap)
	{
	if (!visible_)
		{
		return;
		}

	GetBitmap().Blit((int)GetCel(),bitmap,Round(GetX()-GetOriginX()),Round(GetY()-GetOriginY()),GetColor(),GetAlpha());
	}
开发者ID:RichardMarks,项目名称:Pixie,代码行数:9,代码来源:Sprite.cpp


示例5: CreateCompatibleBitmap

void CBitmapEx::SethBitmap(int iWidth, int iHeight, HDC hdc)
{
	_hBitmap = CreateCompatibleBitmap(
		hdc, iWidth, iHeight);

	GetObject(hGethBitmap(), sizeof(BITMAP), &GetBitmap());


}
开发者ID:BlackHole02,项目名称:GST-C,代码行数:9,代码来源:bitmap.cpp


示例6: _ASSERT_VALID

// Obtain a mask bitmap. A mask bitmap is a bitmap which has
// all pixels with the color "crColor" set to white and all
// other pixels set to black.
HBITMAP ClsBitmap::GetMaskBitmap( COLORREF crColor, int nXPos /* = 0 */, int nYPos /* = 0 */ ) const
{
	_ASSERT_VALID( m_hGdiObject ); // Must be valid.

	// Preset result.
	BOOL bResult = FALSE;
	HBITMAP hMaskBM = NULL;

	// Create the necessary device contexts.
	ClsDC dcSrc, dcDst;
	if ( dcSrc.CreateCompatibleDC( NULL ) &&
	     dcDst.CreateCompatibleDC( NULL ))
	{
		// Get source bitmap information.
		BITMAP bm;
		if ( GetBitmap( &bm ))
		{
			// Create a monochrome bitmap of the same size.
			hMaskBM = ::CreateBitmap( bm.bmWidth, bm.bmHeight, 1, 1, NULL );
			if ( hMaskBM )
			{
				// Select both the source and destination bitmaps.
				HGDIOBJ hOldSrc = dcSrc.SelectObject( m_hGdiObject );
				HGDIOBJ hOldDst = dcDst.SelectObject( hMaskBM );
				_ASSERT( hOldSrc && hOldDst );

				// Obtain the color used to create the mask bitmap.
				if ( crColor == CLR_DEFAULT )
					crColor = dcSrc.GetPixel( nXPos, nYPos );

				// Change the background color to the masked color.
				COLORREF crOldBkCol = dcSrc.SetBkColor( crColor );

				// Copy the source into the destination which creates
				// the mask.
				if ( dcDst.BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &dcSrc, 0, 0, SRCCOPY ))
					// Success...
					bResult = TRUE;
				
				// Restore background color.
				dcSrc.SetBkColor( crOldBkCol );

				// Restore old bitmaps.
				dcSrc.SelectObject( hOldSrc );
				dcDst.SelectObject( hOldDst );

				// Destroy it if no successful.
				if ( bResult == FALSE ) 
					::DeleteObject( hMaskBM );
			}
		}
	}
	// Destroy DCs
	if ( dcSrc.IsValid())    dcSrc.DeleteDC();
	if ( dcDst.IsValid())    dcDst.DeleteDC();
	return bResult == TRUE ? hMaskBM : NULL;
}
开发者ID:x2on,项目名称:NiLogViewer,代码行数:60,代码来源:bitmap.cpp


示例7: switch

void C4DefGraphics::Draw(C4Facet &cgo, DWORD iColor, C4Object *pObj, int32_t iPhaseX, int32_t iPhaseY, C4DrawTransform* trans)
{
	// default: def picture rect
	C4Rect fctPicRect = pDef->PictureRect;
	C4Facet fctPicture;

	// if assigned: use object specific rect and graphics
	if (pObj) if (pObj->PictureRect.Wdt) fctPicRect = pObj->PictureRect;

	// specific object color?
	if (pObj) pObj->PrepareDrawing();

	switch(Type)
	{
	case C4DefGraphics::TYPE_Bitmap:
		fctPicture.Set(GetBitmap(iColor),fctPicRect.x,fctPicRect.y,fctPicRect.Wdt,fctPicRect.Hgt);
		fctPicture.DrawTUnscaled(cgo,true,iPhaseX,iPhaseY,trans);
		break;
	case C4DefGraphics::TYPE_Mesh:
		// TODO: Allow rendering of a mesh directly, without instance (to render pose; no animation)
		std::unique_ptr<StdMeshInstance> dummy;
		StdMeshInstance* instance;

		C4Value value;
		if (pObj)
		{
			instance = pObj->pMeshInstance;
			pObj->GetProperty(P_PictureTransformation, &value);
		}
		else
		{
			dummy.reset(new StdMeshInstance(*Mesh, 1.0f));
			instance = dummy.get();
			pDef->GetProperty(P_PictureTransformation, &value);
		}

		StdMeshMatrix matrix;
		if (C4ValueToMatrix(value, &matrix))
			pDraw->SetMeshTransform(&matrix);

		pDraw->SetPerspective(true);
		pDraw->RenderMesh(*instance, cgo.Surface, cgo.X,cgo.Y, cgo.Wdt, cgo.Hgt, pObj ? pObj->Color : iColor, trans);
		pDraw->SetPerspective(false);
		pDraw->SetMeshTransform(NULL);

		break;
	}

	if (pObj) pObj->FinishedDrawing();

	// draw overlays
	if (pObj && pObj->pGfxOverlay)
		for (C4GraphicsOverlay *pGfxOvrl = pObj->pGfxOverlay; pGfxOvrl; pGfxOvrl = pGfxOvrl->GetNext())
			if (pGfxOvrl->IsPicture())
				pGfxOvrl->DrawPicture(cgo, pObj, trans);
}
开发者ID:Meowtimer,项目名称:openclonk,代码行数:56,代码来源:C4DefGraphics.cpp


示例8: Attach

//////////////////
// Attach is just like the CGdiObject version,
// except it also creates the palette
//
BOOL CDib::Attach(HGDIOBJ hbm)
{
	if (CBitmap::Attach(hbm)) {
		if (!GetBitmap(&m_bm))			// load BITMAP for speed
			return FALSE;
		m_pal.DeleteObject();			// in case one is already there
		return CreatePalette(m_pal);	// create palette
	}
	return FALSE;	
}
开发者ID:segafan,项目名称:wme1_jankavan_tlc_edition-repo,代码行数:14,代码来源:Dib.cpp


示例9: fn

void ReconcileProjectDlg::OnUndoSelectedFiles(wxCommandEvent& event)
{
    wxDataViewItemArray items;
    m_dataviewAssigned->GetSelections(items);

    for(size_t i=0; i<items.GetCount(); ++i) {
        wxVariant v;
        ReconcileFileItemData* data = dynamic_cast<ReconcileFileItemData*>(m_dataviewAssignedModel->GetClientObject( items.Item(i) ));
        if ( data ) {
            wxFileName fn(data->GetFilename());
            fn.MakeRelativeTo(m_toplevelDir);

            wxVector<wxVariant> cols;
            cols.push_back(::MakeIconText(fn.GetFullPath(), GetBitmap(fn.GetFullName())));
            m_dvListCtrl1Unassigned->AppendItem( cols, (wxUIntPtr)NULL );

        }
    }

    // get the list of items
    wxArrayString allfiles;
    for(int i=0 ; i<m_dvListCtrl1Unassigned->GetItemCount(); ++i) {
        wxVariant v;
        m_dvListCtrl1Unassigned->GetValue(v, i, 0);
        wxDataViewIconText it;
        it << v;
        allfiles.Add(it.GetText());
    }

    m_dataviewAssignedModel->DeleteItems(wxDataViewItem(0), items);

    // Could not find a nicer way of doing this, but
    // we want the files to be sorted again
    m_dvListCtrl1Unassigned->DeleteAllItems();

    std::sort(allfiles.begin(), allfiles.end());
    for(size_t i=0; i<allfiles.GetCount(); ++i) {
        wxVector<wxVariant> cols;
        cols.push_back( ::MakeIconText(allfiles.Item(i), GetBitmap(allfiles.Item(i)) ) );
        m_dvListCtrl1Unassigned->AppendItem( cols, (wxUIntPtr)NULL);
    }
}
开发者ID:HTshandou,项目名称:codelite,代码行数:42,代码来源:reconcileproject.cpp


示例10: Cmd

void cVnsiOsd::Flush(void)
{
  if (!Active())
     return;
  cBitmap *Bitmap;
  bool full = cVnsiOsdProvider::IsRequestFull();
  for (int i = 0; (Bitmap = GetBitmap(i)) != NULL; i++)
  {
    uint8_t reset = !shown || full;
    Cmd(VNSI_OSD_OPEN, i, Bitmap->Bpp(), Left() + Bitmap->X0(), Top() + Bitmap->Y0(), Left() + Bitmap->X0() + Bitmap->Width() - 1, Top() + Bitmap->Y0() + Bitmap->Height() - 1, (void *)&reset, 1);
    int x1 = 0, y1 = 0, x2 = 0, y2 = 0;
    if (!shown || Bitmap->Dirty(x1, y1, x2, y2) || full)
    {
      if (!shown || full)
      {
        x1 = y1 = 0;
        x2 = Bitmap->Width() - 1;
        y2 = Bitmap->Height() - 1;
      }
      // commit colors:
      int NumColors;
      const tColor *Colors = Bitmap->Colors(NumColors);
      if (Colors)
      {
        Cmd(VNSI_OSD_SETPALETTE, i, 0, NumColors, 0, 0, 0, Colors, NumColors*sizeof(tColor));
      }
      // commit modified data:
      int size = (y2-y1) * Bitmap->Width() + (x2-x1+1);
      Cmd(VNSI_OSD_SETBLOCK, i, Bitmap->Width(), x1, y1, x2, y2, Bitmap->Data(x1, y1), size);
    }
    Bitmap->Clean();
  }
  if (!shown)
  {
    // Showing the windows in a separate loop to avoid seeing them come up one after another
    for (int i = 0; (Bitmap = GetBitmap(i)) != NULL; i++)
    {
      Cmd(VNSI_OSD_MOVEWINDOW, i, 0, Left() + Bitmap->X0(), Top() + Bitmap->Y0());
    }
    shown = true;
  }
}
开发者ID:AlwinEsch,项目名称:vdr-plugin-vnsiserver,代码行数:42,代码来源:vnsiosd.c


示例11: NewBitmapCursor

int NewBitmapCursor(Cursor *cp, char *source, char *mask)
{
	XColor fore, back;
	int hotx, hoty;
	int sx, sy, mx, my;
	unsigned int sw, sh, mw, mh;
	Pixmap spm, mpm;
	Colormap cmap = Scr->RootColormaps.cwins[0]->colormap->c;

	if(dpy == NULL) {
		// Handle special cases like --cfgchk
		*cp = None;
		return 0;
	}

	fore.pixel = Scr->Black;
	XQueryColor(dpy, cmap, &fore);
	back.pixel = Scr->White;
	XQueryColor(dpy, cmap, &back);

	spm = GetBitmap(source);
	if((hotx = HotX) < 0) {
		hotx = 0;
	}
	if((hoty = HotY) < 0) {
		hoty = 0;
	}
	mpm = GetBitmap(mask);

	/* make sure they are the same size */

	XGetGeometry(dpy, spm, &JunkRoot, &sx, &sy, &sw, &sh, &JunkBW, &JunkDepth);
	XGetGeometry(dpy, mpm, &JunkRoot, &mx, &my, &mw, &mh, &JunkBW, &JunkDepth);
	if(sw != mw || sh != mh) {
		fprintf(stderr,
		        "%s:  cursor bitmaps \"%s\" and \"%s\" not the same size\n",
		        ProgramName, source, mask);
		return (1);
	}
	*cp = XCreatePixmapCursor(dpy, spm, mpm, &fore, &back, hotx, hoty);
	return (0);
}
开发者ID:fullermd,项目名称:ctwm-mirror,代码行数:42,代码来源:cursor.c


示例12: GetBitmap

void MAS::Progress::UpdateSize() {
   Bitmap bmp = GetBitmap();
   if (!bmp) return;
      
   if (orientation == 1) {
      h(bmp.h());
   }
   else {
      w(bmp.w());
   }
}
开发者ID:bambams,项目名称:ma5king,代码行数:11,代码来源:progress.cpp


示例13: GetHbitmapOf

bool wxBitmapDataObject::GetDataHere(void *buf) const
{
#if wxUSE_WXDIB && !defined(__WXWINCE__)
    BITMAPINFO * const pbi = (BITMAPINFO *)buf;

    return wxDIB::ConvertFromBitmap(pbi, GetHbitmapOf(GetBitmap())) != 0;
#else
    wxUnusedVar(buf);
    return false;
#endif
}
开发者ID:hazeeq090576,项目名称:wxWidgets,代码行数:11,代码来源:dataobj.cpp


示例14: GetBitmap

void CMyStatic::OnLButtonDown(UINT nFlags, CPoint point)
{
	bool bHandled = false;
	HBITMAP hBitmap = GetBitmap();
	COleDataSourceEx *pDataSrc = NULL;
	if (m_bDelayRendering)
		pDataSrc = DelayRenderOleData(hBitmap);
	else
		pDataSrc = CacheOleData(hBitmap, false);
	if (pDataSrc)
	{
		if (m_bAllowDropDesc)						// Allow targets to show user defined text.
			pDataSrc->AllowDropDescriptionText();	// Must be called before setting the drag image.

		CPoint pt(-1, 30000);						// Cursor is centered below the image
		switch (m_nDragImageType & DRAG_IMAGE_FROM_MASK)
		{
		case DRAG_IMAGE_FROM_CAPT :
			// Get drag image from content with optional scaling
			pDataSrc->InitDragImage(hBitmap, m_nDragImageScale, &pt);
			break;
		case DRAG_IMAGE_FROM_RES :
			// Use bitmap from resources as drag image
			pDataSrc->InitDragImage(IDB_BITMAP_DRAGME, &pt, CLR_INVALID);
			break;
		case DRAG_IMAGE_FROM_HWND :
			// This window handles DI_GETDRAGIMAGE messages.
//			pDataSrc->SetDragImageWindow(m_hWnd, &point);
//			break;
		case DRAG_IMAGE_FROM_SYSTEM :
			// Let Windows create the drag image.
			// With file lists and provided "Shell IDList Array" data, file type images are shown.
			// Otherwise, a generic image is used.
			pDataSrc->SetDragImageWindow(NULL, &point);
			break;
		case DRAG_IMAGE_FROM_EXT :
			// Get drag image from file extension using the file type icon
			pDataSrc->InitDragImage(_T(".bmp"), m_nDragImageScale, &pt);
			break;
//		case DRAG_IMAGE_FROM_TEXT :
//		case DRAG_IMAGE_FROM_BITMAP :
		default :
			// Get drag image from content without scaling
			pDataSrc->InitDragImage(hBitmap, 100, &pt);
		}
		m_bDragging = true;							// to know when dragging over our own window
		pDataSrc->DoDragDropEx(DROPEFFECT_COPY);
		pDataSrc->InternalRelease();
		m_bDragging = false;
		bHandled = true;
	}
	if (!bHandled)
		CStatic::OnLButtonDown(nFlags, point);
}
开发者ID:halx99,项目名称:OleDataDemo,代码行数:54,代码来源:MyStatic.cpp


示例15: GetObject

void CBitmapEx::SethBitmap(const TCHAR* szFileName)
{
	_hBitmap = (HBITMAP)LoadImage(
		NULL,			//hInstance=NULL lay cua so hien tai
		szFileName,		//File can lay hinh
		IMAGE_BITMAP,	//loai la bitmap
		0,
		0,
		LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE
		);
	GetObject(hGethBitmap(), sizeof(BITMAP), &GetBitmap());
}
开发者ID:BlackHole02,项目名称:GST-C,代码行数:12,代码来源:bitmap.cpp


示例16: XRC_MAKE_INSTANCE

wxObject * MaxBannerWindowXmlHandler::DoCreateResource()
{
    XRC_MAKE_INSTANCE(banner, MaxBannerWindow)

    banner->Create(m_parentAsWindow,
                   GetID(),
                   GetDirection(wxS("direction")),
                   GetPosition(),
                   GetSize(),
                   GetStyle(wxS("style")),
                   GetName());

	banner->MaxBind(CB_PREF(wx_wxbannerwindow_wxBannerWindow__xrcNew)(banner));

    SetupWindow(banner);

    const wxColour colStart = GetColour(wxS("gradient-start"));
    const wxColour colEnd = GetColour(wxS("gradient-end"));
    if ( colStart.IsOk() || colEnd.IsOk() )
    {
        if ( !colStart.IsOk() || !colEnd.IsOk() )
        {
            ReportError
            (
                "Both start and end gradient colours must be "
                "specified if either one is."
            );
        }
        else
        {
            banner->SetGradient(colStart, colEnd);
        }
    }

    wxBitmap bitmap = GetBitmap();
    if ( bitmap.IsOk() )
    {
        if ( colStart.IsOk() || colEnd.IsOk() )
        {
            ReportError
            (
                "Gradient colours are ignored by wxBannerWindow "
                "if the background bitmap is specified."
            );
        }

        banner->SetBitmap(bitmap);
    }

    banner->SetText(GetText(wxS("title")), GetText(wxS("message")));

    return banner;
}
开发者ID:maxmods,项目名称:wx.mod,代码行数:53,代码来源:glue.cpp


示例17: XRC_MAKE_INSTANCE

// Creates the control and returns a pointer to it.
wxObject *wxStaticPictureXmlHandler::DoCreateResource()
{
    XRC_MAKE_INSTANCE(control, wxStaticPicture)

    control->Create(m_parentAsWindow, GetID(),
        GetBitmap(wxT("bitmap"), wxART_OTHER, GetSize()),
        GetPosition(), GetSize(), GetStyle(), GetName());

    SetupWindow(control);

    return control;
}
开发者ID:2015E8007361074,项目名称:wxPython,代码行数:13,代码来源:xh_statpict.cpp


示例18: SetActive

	virtual void SetActive(bool On)
	{
		if (On != Active())
		{
			cOsd::SetActive(On);
			if (!On)
				Clear();
			else
				if (GetBitmap(0))
					Flush();
		}
	}
开发者ID:vitmod,项目名称:vdr-plugin-amlhddevice1,代码行数:12,代码来源:fbosd.c


示例19: GetBitmap

wxSize wxStaticBitmapBase::DoGetBestSize() const
{
    wxSize best;
    wxBitmap bmp = GetBitmap();
    if ( bmp.IsOk() )
        best = bmp.GetScaledSize();
    else
        // this is completely arbitrary
        best = wxSize(16, 16);
    CacheBestSize(best);
    return best;
}
开发者ID:chromylei,项目名称:third_party,代码行数:12,代码来源:ctrlcmn.cpp


示例20: Flush

	virtual void Flush(void)
	{
		if (!Active() || !m_fb)
			return;

		if (IsTrueColor())
		{
			LOCK_PIXMAPS;
			while (cPixmapMemory *pm =
					dynamic_cast<cPixmapMemory *>(RenderPixmaps()))
			{
				const uint8_t *src = pm->Data();
				char *dst = m_fb + (Left() + pm->ViewPort().Left()) *
						(m_vinfo.bits_per_pixel / 8 ) +
						(Top() + pm->ViewPort().Top()) * m_finfo.line_length;

				for (int y = 0; y < pm->DrawPort().Height(); y++)
				{
					memcpy(dst, src, pm->DrawPort().Width() * sizeof(tColor));
					src += pm->DrawPort().Width() * sizeof(tColor);
					dst += m_finfo.line_length;
				}
#if APIVERSNUM >= 20110
				DestroyPixmap(pm);
#else
				delete pm;
#endif
			}
		}
		else
		{
			for (int i = 0; cBitmap *bitmap = GetBitmap(i); ++i)
			{
				int x1, y1, x2, y2;
				if (bitmap->Dirty(x1, y1, x2, y2))
				{
					char *dst = m_fb + (Left() + bitmap->X0() + x1) *
							(m_vinfo.bits_per_pixel / 8 ) +
							(Top() + bitmap->Y0() + y1) * m_finfo.line_length;

					for (int y = y1; y <= y2; ++y)
					{
						tColor *p = (tColor *)dst;
						for (int x = x1; x <= x2; ++x)
							*p++ = bitmap->GetColor(x, y);

						dst += m_finfo.line_length;
					}
					bitmap->Clean();
				}
			}
		}
	}
开发者ID:vitmod,项目名称:vdr-plugin-amlhddevice1,代码行数:53,代码来源:fbosd.c



注:本文中的GetBitmap函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C++ GetBits函数代码示例发布时间:2022-05-30
下一篇:
C++ GetBaseReputation函数代码示例发布时间: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