您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GDI_GetObjPtr函数代码示例

51自学网 2021-06-01 20:49:56
  C++
这篇教程C++ GDI_GetObjPtr函数代码示例写得很实用,希望能帮到您。

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

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

示例1: get_brush_bitmap_info

BOOL get_brush_bitmap_info( HBRUSH handle, BITMAPINFO *info, void **bits, UINT *usage ){    BRUSHOBJ *brush;    BOOL ret = FALSE;    if (!(brush = GDI_GetObjPtr( handle, OBJ_BRUSH ))) return FALSE;    if (!brush->info)    {        BITMAPOBJ *bmp = GDI_GetObjPtr( brush->bitmap, OBJ_BITMAP );        if (bmp)        {            store_bitmap_bits( brush, bmp );            GDI_ReleaseObj( brush->bitmap );        }    }    if (brush->info)    {        memcpy( info, brush->info, get_dib_info_size( brush->info, brush->usage ));        if (info->bmiHeader.biBitCount <= 8 && !info->bmiHeader.biClrUsed)            fill_default_color_table( info );        *bits = brush->bits.ptr;        *usage = brush->usage;        ret = TRUE;    }    GDI_ReleaseObj( handle );    return ret;}
开发者ID:bpon,项目名称:wine,代码行数:29,


示例2: REGION_FrameRgn

/* *           REGION_FrameRgn * Create a region that is a frame around another region. * Expand all rectangles by +/- x and y, then subtract original region. */BOOLREGION_FrameRgn( HRGN hDest, HRGN hSrc, INT x, INT y ){    BOOL bRet;    MWRGNOBJ *srcObj = (MWRGNOBJ*) GDI_GetObjPtr( hSrc, OBJ_REGION );    if (srcObj->rgn->numRects != 0)     {	MWRGNOBJ* destObj = (MWRGNOBJ*) GDI_GetObjPtr( hDest, OBJ_REGION );	RECT *pRect, *pEndRect;	RECT tempRect;	EMPTY_REGION( destObj->rgn );		pEndRect = srcObj->rgn->rects + srcObj->rgn->numRects;	for(pRect = srcObj->rgn->rects; pRect < pEndRect; pRect++)	{	    tempRect.left = pRect->left - x;        	    tempRect.top = pRect->top - y;	    tempRect.right = pRect->right + x;	    tempRect.bottom = pRect->bottom + y;	    GdUnionRectWithRegion( &tempRect, destObj->rgn );	}	GdSubtractRegion( destObj->rgn, destObj->rgn, srcObj->rgn );	bRet = TRUE;    }    else	bRet = FALSE;    return bRet;}
开发者ID:ghaerr,项目名称:microwindows,代码行数:35,


示例3: CombineRgn

/* * Note: The behavior is correct even if src and dest regions are the same. */INT WINAPICombineRgn(HRGN hDest, HRGN hSrc1, HRGN hSrc2, INT mode){    MWRGNOBJ *destObj = (MWRGNOBJ *) GDI_GetObjPtr( hDest, OBJ_REGION);    INT result = ERRORREGION;    /*TRACE(region, " %04x,%04x -> %04x mode=%x/n", hSrc1, hSrc2, hDest,mode);*/    if (destObj)    {	MWRGNOBJ *src1Obj = (MWRGNOBJ *) GDI_GetObjPtr( hSrc1, OBJ_REGION);	if (src1Obj)	{	    /*TRACE(region, "dump:/n");	    if(TRACE_ON(region)) 	        REGION_DumpRegion(src1Obj->rgn);*/	    if (mode == RGN_COPY)	    {		GdCopyRegion( destObj->rgn, src1Obj->rgn );		result = destObj->rgn->type;	    }	    else	    {		MWRGNOBJ *src2Obj = (MWRGNOBJ *) GDI_GetObjPtr( hSrc2, OBJ_REGION);		if (src2Obj)		{		    /*TRACE(region, "dump:/n");		    if(TRACE_ON(region)) 		        REGION_DumpRegion(src2Obj->rgn);*/		    switch (mode)		    {		    case RGN_AND:			GdIntersectRegion( destObj->rgn, src1Obj->rgn, src2Obj->rgn);			break;		    case RGN_OR:			GdUnionRegion( destObj->rgn, src1Obj->rgn, src2Obj->rgn );			break;		    case RGN_XOR:			GdXorRegion( destObj->rgn, src1Obj->rgn, src2Obj->rgn );			break;		    case RGN_DIFF:			GdSubtractRegion( destObj->rgn, src1Obj->rgn, src2Obj->rgn );			break;		    }		    result = destObj->rgn->type;		}	    }	}	/*TRACE(region, "dump:/n");	if(TRACE_ON(region)) 	    REGION_DumpRegion(destObj->rgn);*/    }    return result;}
开发者ID:ghaerr,项目名称:microwindows,代码行数:59,


示例4: EqualRgn

BOOL WINAPIEqualRgn( HRGN hrgn1, HRGN hrgn2 ){    MWRGNOBJ *obj1, *obj2;    if ((obj1 = (MWRGNOBJ *) GDI_GetObjPtr( hrgn1, OBJ_REGION ))) 	if ((obj2 = (MWRGNOBJ *) GDI_GetObjPtr( hrgn2, OBJ_REGION ))) 	    return GdEqualRegion(obj1->rgn, obj2->rgn);    return FALSE;}
开发者ID:ghaerr,项目名称:microwindows,代码行数:10,


示例5: copy_bitmap

static BOOL copy_bitmap( BRUSHOBJ *brush, HBITMAP bitmap ){    BITMAPINFO *info;    BITMAPOBJ *bmp = GDI_GetObjPtr( bitmap, OBJ_BITMAP );    if (!bmp) return FALSE;    if (!bmp->dib)    {        if ((brush->bitmap = CreateBitmap( bmp->bitmap.bmWidth, bmp->bitmap.bmHeight,                                           bmp->bitmap.bmPlanes, bmp->bitmap.bmBitsPixel, NULL )))        {            if (bmp->funcs->pCopyBitmap( bitmap, brush->bitmap ))            {                BITMAPOBJ *copy = GDI_GetObjPtr( brush->bitmap, OBJ_BITMAP );                copy->funcs = bmp->funcs;                GDI_ReleaseObj( copy );            }            else            {                DeleteObject( brush->bitmap );                brush->bitmap = 0;            }        }        GDI_ReleaseObj( bitmap );        return brush->bitmap != 0;    }    info = HeapAlloc( GetProcessHeap(), 0,                      get_dib_info_size( (BITMAPINFO *)&bmp->dib->dsBmih, DIB_RGB_COLORS ));    if (!info) goto done;    info->bmiHeader = bmp->dib->dsBmih;    if (info->bmiHeader.biCompression == BI_BITFIELDS)        memcpy( &info->bmiHeader + 1, bmp->dib->dsBitfields, sizeof(bmp->dib->dsBitfields) );    else if (info->bmiHeader.biClrUsed)        memcpy( &info->bmiHeader + 1, bmp->color_table, info->bmiHeader.biClrUsed * sizeof(RGBQUAD) );    if (!(brush->bits.ptr = HeapAlloc( GetProcessHeap(), 0, info->bmiHeader.biSizeImage )))    {        HeapFree( GetProcessHeap(), 0, info );        goto done;    }    memcpy( brush->bits.ptr, bmp->dib->dsBm.bmBits, info->bmiHeader.biSizeImage );    brush->bits.is_copy = TRUE;    brush->bits.free = free_heap_bits;    brush->info = info;    brush->usage = DIB_RGB_COLORS;done:    GDI_ReleaseObj( bitmap );    return brush->info != NULL;}
开发者ID:bpon,项目名称:wine,代码行数:51,


示例6: BRUSH_SelectObject

/*********************************************************************** *           BRUSH_SelectObject */static HGDIOBJ BRUSH_SelectObject( HGDIOBJ handle, HDC hdc ){    BRUSHOBJ *brush;    HGDIOBJ ret = 0;    DC *dc = get_dc_ptr( hdc );    if (!dc)    {        SetLastError( ERROR_INVALID_HANDLE );        return 0;    }    if ((brush = GDI_GetObjPtr( handle, OBJ_BRUSH )))    {        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSelectBrush );        HBITMAP bitmap = brush->bitmap;        BITMAPINFO *info;        void *bits;        UINT usage;        if (bitmap && !brush->info)        {            BITMAPOBJ *bmp = GDI_GetObjPtr( bitmap, OBJ_BITMAP );            /* fetch the bitmap bits if we are selecting into a different type of DC */            if (bmp && bmp->funcs != physdev->funcs) store_bitmap_bits( brush, bmp );            GDI_ReleaseObj( bitmap );        }        info   = brush->info;        bits   = brush->bits.ptr;        usage  = brush->usage;        GDI_inc_ref_count( handle );        GDI_ReleaseObj( handle );        if (!physdev->funcs->pSelectBrush( physdev, handle, bitmap, info, bits, usage ))        {            GDI_dec_ref_count( handle );        }        else        {            ret = dc->hBrush;            dc->hBrush = handle;            GDI_dec_ref_count( ret );        }    }    release_dc_ptr( dc );    return ret;}
开发者ID:bpon,项目名称:wine,代码行数:51,


示例7: ExtCreateRegion

HRGN WINAPIExtCreateRegion(const XFORM* lpXform, DWORD dwCount, const RGNDATA* rgndata){    HRGN hrgn = CreateRectRgn(0, 0, 0, 0);    MWRGNOBJ *obj = (MWRGNOBJ *) GDI_GetObjPtr( hrgn, OBJ_REGION );    RECT *pCurRect, *pEndRect;    /*TRACE(region, " %p %ld %p. Returning %04x/n",		lpXform, dwCount, rgndata, hrgn);*/    if(!hrgn)    {        WARN(region, "Can't create a region!/n");	return 0;    }    if(lpXform)        WARN(region, "Xform not implemented - ignoring/n");        if(rgndata->rdh.iType != RDH_RECTANGLES)    {        WARN(region, "Type not RDH_RECTANGLES/n");	DeleteObject( hrgn );	return 0;    }    pEndRect = (RECT *)rgndata->Buffer + rgndata->rdh.nCount;    for(pCurRect = (RECT *)rgndata->Buffer; pCurRect < pEndRect; pCurRect++)        GdUnionRectWithRegion( pCurRect, obj->rgn );    return hrgn;}
开发者ID:ghaerr,项目名称:microwindows,代码行数:30,


示例8: GetRegionData

DWORD WINAPIGetRegionData(HRGN hrgn, DWORD count, LPRGNDATA rgndata){    DWORD size;    MWRGNOBJ *obj = (MWRGNOBJ *) GDI_GetObjPtr( hrgn, OBJ_REGION );    MWCLIPREGION *rgn;        /*TRACE(region," %04x count = %ld, rgndata = %p/n", hrgn, count, rgndata);*/    if(!obj) return 0;    rgn = obj->rgn;    size = rgn->numRects * sizeof(RECT);    if(count < (size + sizeof(RGNDATAHEADER)) || rgndata == NULL)        return size + sizeof(RGNDATAHEADER);    rgndata->rdh.dwSize = sizeof(RGNDATAHEADER);    rgndata->rdh.iType = RDH_RECTANGLES;    rgndata->rdh.nCount = rgn->numRects;    rgndata->rdh.nRgnSize = size;    rgndata->rdh.rcBound.left = rgn->extents.left;    rgndata->rdh.rcBound.top = rgn->extents.top;    rgndata->rdh.rcBound.right = rgn->extents.right;    rgndata->rdh.rcBound.bottom = rgn->extents.bottom;    memcpy( rgndata->Buffer, rgn->rects, size );    return 1;}
开发者ID:ghaerr,项目名称:microwindows,代码行数:29,


示例9: EMFDRV_SelectObject

/*********************************************************************** *           EMFDRV_SelectObject */HGDIOBJ EMFDRV_SelectObject( DC *dc, HGDIOBJ handle ){    GDIOBJHDR * ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE );    HGDIOBJ ret = 0;    if (!ptr) return 0;    TRACE("hdc=%04x %04x/n", dc->hSelf, handle );    switch(GDIMAGIC(ptr->wMagic))    {      case PEN_MAGIC:	  ret = EMFDRV_PEN_SelectObject( dc, handle );	  break;      case BRUSH_MAGIC:	  ret = EMFDRV_BRUSH_SelectObject( dc, handle );	  break;      case FONT_MAGIC:	  ret = EMFDRV_FONT_SelectObject( dc, handle );	  break;      case BITMAP_MAGIC:	  ret = EMFDRV_BITMAP_SelectObject( dc, handle );	  break;    }    GDI_ReleaseObj( handle );    return ret;}
开发者ID:NVIDIA,项目名称:winex_lgpl,代码行数:29,


示例10: GDIRealizePalette

/*********************************************************************** *           GDIRealizePalette    (Not a Windows API) */UINT WINAPI GDIRealizePalette( HDC hdc ){    UINT realized = 0;    DC* dc = get_dc_ptr( hdc );    if (!dc) return 0;    TRACE("%p.../n", hdc );    if( dc->hPalette == GetStockObject( DEFAULT_PALETTE ))    {        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pRealizeDefaultPalette );        realized = physdev->funcs->pRealizeDefaultPalette( physdev );    }    else if (InterlockedExchangePointer( (void **)&hLastRealizedPalette, dc->hPalette ) != dc->hPalette)    {        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pRealizePalette );        PALETTEOBJ *palPtr = GDI_GetObjPtr( dc->hPalette, OBJ_PAL );        if (palPtr)        {            realized = physdev->funcs->pRealizePalette( physdev, dc->hPalette,                                                        (dc->hPalette == hPrimaryPalette) );            palPtr->unrealize = physdev->funcs->pUnrealizePalette;            GDI_ReleaseObj( dc->hPalette );        }    }    else TRACE("  skipping (hLastRealizedPalette = %p)/n", hLastRealizedPalette);    release_dc_ptr( dc );    TRACE("   realized %i colors./n", realized );    return realized;}
开发者ID:AlexSteel,项目名称:wine,代码行数:35,


示例11: GetNearestPaletteIndex

/*********************************************************************** * GetNearestPaletteIndex [[email
C++ GDI_ReleaseObj函数代码示例
C++ GDBUS_METHOD函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。