# include“l_bitmap.h”
L_LTKRN_APIL_INTL_CreateBitmapList (phList)
创建一个空列表的位图。列表可以建立和维护与相关功能。
地址的HBITMAPLIST变量的列表。
价值 | 意义 |
---|---|
成功 | 函数是成功的。 |
< 1 | 一个错误发生。指返回代码。 |
必需的dll和库
Win32 x64, Linux。
这个示例创建一个位图列表从当前位图旋转每份10度。
它定义了旋转填充颜色为透明色,和分配一个动画背景颜色。
然后播放动画,使用当前位图作为目标。
L_INT CreateBitmapListExample (HWND HWND,
HPALETTE hpalPaint,/ *漆面板处理。* /
pBITMAPHANDLE pBitmap)/ *加载图像位图句柄。* /
{
L_INT nRet;
HBITMAPLIST hList;/ * * /位图列表
BITMAPHANDLE TmpBitmap;/ *临时位图来构建列表* /
L_INT nMax = 160;/ *最大宽度或高度位图的列表* /
HPLAYBACK HPLAYBACK;/ *动画播放* /
L_UINT uState;/ * * /播放下一个状态
矩形rcUpdate;/ *源剪辑矩形用于播放* /
矩形rcDisplay;/ *显示矩形用于播放* /
HDC HDC;/ * * /设备上下文的当前窗口
HPALETTE HPALETTE =零;/ *当前系统调色板的临时副本* /
RGBQUAD TmpPalette [1];/ *定义透明面板颜色* /
L_INT我;/ * * /循环计数器
/ *减少内存需求,如果必要的。只有小的位图玩顺利。* /
如果宽度(pBitmap - > > nMax)
{
nRet = L_SizeBitmap (pBitmap nMax (pBitmap - >高度* nMax) / pBitmap - >宽度,SIZE_RESAMPLE);
如果(nRet ! =成功)
返回nRet;
}
其他的如果(pBitmap - > > nMax)高度
{
nRet = L_SizeBitmap (pBitmap (pBitmap - >宽度* nMax) / pBitmap - >高度,nMax, SIZE_RESAMPLE);
如果(nRet ! =成功)
返回nRet;
}
/ *犹豫一个优化面板,留下最后一个颜色使用空白
后来透明度* /
nRet = L_ColorResBitmap (pBitmap pBitmap,运算符(BITMAPHANDLE) 8 CRF_FLOYDSTEINDITHERING | CRF_OPTIMIZEDPALETTE | CRF_IDENTITYPALETTE,
空,空,255,零,零);
如果(nRet ! =成功)
返回nRet;
/ *设置透明色板的位置* /
TmpPalette [0]。rgbBlue =(202字节);
TmpPalette [0]。rgbGreen =(222字节);
TmpPalette [0]。rgbRed =(212字节);
nRet = L_PutBitmapColors (pBitmap 50 TmpPalette);
如果(nRet ! =成功)
返回nRet;
/ *创建调色板* /
hdc = GetDC (hWnd);
pBitmap hpalPaint = L_CreatePaintPalette (hdc);
ReleaseDC (hWnd, hdc);
/ *设置回放旗帜,将适用于所有列表中的位图* /
pBitmap - >标记。WaitUserInput = FALSE;
pBitmap - >标记。透明度= TRUE;
pBitmap - >左= 0;
pBitmap - >高级= 0;
pBitmap延迟- > = 10;
pBitmap - >透明度= PALETTEINDEX (255);去年颜色调色板* / / *
pBitmap - > DisposalMethod = PLAYDISPOSE_RESTOREBACKGROUND;
/ *创建和填充位图列表* /
nRet = L_CreateBitmapList (&hList);
如果(nRet ! =成功)
返回nRet;
为(i = 0;我< = 36;+ + i)
{
nRet = L_CopyBitmap (&TmpBitmap pBitmap,运算符(BITMAPHANDLE));
如果(nRet ! =成功)
返回nRet;
/ *旋转,使用透明颜色填充颜色* /
nRet = L_RotateBitmap (&TmpBitmap, 1000 * 0 PALETTEINDEX (255);
如果(nRet ! =成功)
返回nRet;
nRet = L_InsertBitmapListItem (hList (L_UINT) 1, &TmpBitmap);
如果(nRet ! =成功)
返回nRet;
}
/ *设置背景颜色的动画播放* /
pBitmap - >背景= RGB (0, 0255);
/ * * /使用的客户区显示矩形
GetClientRect (hWnd, &rcDisplay);
/ *创建并运行播放* /
nRet = L_CreatePlayback (&hPlayback pBitmap hList);
如果(nRet ! =成功)
返回nRet;
做
{
nRet = L_ProcessPlayback (hPlayback &uState);
如果(nRet ! =成功)
返回nRet;
开关(uState)
{
情况下PLAYSTATE_POSTRENDER:
nRet = L_GetPlaybackUpdateRect (hPlayback &rcUpdate,真的);
如果(nRet ! =成功)
返回nRet;
hdc = GetDC (hWnd);
如果(hpalPaint)
{
hPalette = SelectPalette (hdc hpalPaint,真的);
RealizePalette (hdc);
}
nRet = L_PaintDC (hdc pBitmap, NULL, &rcUpdate、&rcDisplay &rcDisplay, SRCCOPY);
如果(nRet ! =成功)
返回nRet;
如果(hpalPaint)
SelectPalette (hdc hPalette,真实);
ReleaseDC (hWnd, hdc);
打破;
}
}而(uState ! = PLAYSTATE_END);
/ * * /清理干净
nRet = L_DestroyPlayback (hPlayback, NULL);
如果(nRet ! =成功)
返回nRet;
nRet = L_DestroyBitmapList (hList);
如果(nRet ! =成功)
返回nRet;
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。