L_EfxTileRect

# include“l_bitmap.h”

L_LTEFX_APIL_INTl_efxtil竖立(hdcDest, prcDest, hdcSrc, prcSrc)

执行将源矩形像素从指定的源设备上下文传输到目标设备上下文的位块传输,同时将源平铺以适合目标。

参数

HDC

目标设备上下文的句柄。

矩形* prcDest

指向目标矩形的指针。

HDChdcSrc

源设备上下文的句柄。

矩形* prcSrc

指向源矩形的指针。

返回

价值 意义
成功 函数运行成功。
< 1 发生错误。指返回代码

评论

当你想要一个特殊的绘画效果时,使用这个函数来替代Windows BitBlt C API函数。

如果源矩形小于目标矩形,则源矩形将根据需要复制(平铺)多次以适合目标矩形。

一般信息请参考实施特效

所需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

这个函数展示了如何使用l_efxtil竖立。

L_INT EfxTileRectExample(HWND HWND){L_INT nRet;HDC画;/*设备上下文当前窗口*/HDC hdcSrc;/*设备上下文源图像*/BITMAPHANDLE位图;/*图像将被BLT */HBITMAP hbmMem;/*图像将被BLT */HPALETTE = NULL;/*当前系统调色板的临时副本*/hPaintPal = NULL;/*我们将用来绘制的调色板*/L_INT nBitsPerPixel;L_RECT rcDst;L_RECT rcSrc;/*获取设备上下文*/hdcDest = GetDC (hWnd);/*检查设备查看如果我们需要一个调色板nBitsPerPixel = GetDeviceCaps(hdcDest, BITSPIXEL) * GetDeviceCaps(hdcDest, PLANES);/*加载图片到BLT *//*加载图像为屏幕位深度*/nRet = L_LoadBitmap(MAKE_IMAGE_PATH(TEXT))“IMAGE1。CMP”)),位图,运算符(BITMAPHANDLE), (nBitsPerPixel <= 8) ?nBitsPerPixel: 24, ORDER_BGR, NULL, NULL);如果(nRet != SUCCESS)返回nRet;/*创建源DC */hdcSrc = CreateCompatibleDC(hdcDest);/*将图像转换为DDB并将其选择到源dc */hbmMem = l_converttobb (hdcDest, &Bitmap);L_FreeBitmap(位图);hbmMem = (HBITMAP)SelectObject(hdcSrc, hbmMem);如果(nBitsPerPixel <=8){hPaintPal = L_CreatePaintPalette(hdcDest, &Bitmap);hSavedPalette = SelectPalette (hdcDest, hPaintPal, FALSE);/*实现调色板*/RealizePalette(画);}/*平铺图像使用L_EfxTileRect * /GetClientRect (hWnd, &rcDst);SetRect(&rcSrc, 0,0,100,100);nRet = l_efxtil竖立(hdcDest, &rcDst, hdcSrc, &rcSrc);如果(nRet != SUCCESS)返回nRet;/*恢复旧调色板*/如果(hPaintPal){SelectPalette (hdcDest, hSavedPalette, FALSE);DeleteObject (hPaintPal);}/*释放设备上下文*/释放c (hWnd, hdcDest);DeleteDC (hdcSrc);DeleteObject (hbmMem);返回成功;}

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领先科技有限公司版权所有。