IDirectDrawSurface7::SetPalette 方法 (ddraw.h)
将调色板对象附加到 (或从图面) 分离一个对象。 图面将此调色板用于所有后续操作。 调色板更改会立即发生,而不考虑刷新时间。
语法
HRESULT SetPalette(
[in] LPDIRECTDRAWPALETTE unnamedParam1
);
参数
[in] unnamedParam1
指向要用于此图面的调色板对象的 IDirectDrawPalette 接口的指针。 如果为 NULL,则分离当前调色板。
返回值
如果方法成功,则返回值DD_OK。
如果失败,方法可能会返回以下错误值之一:
- DDERR_GENERIC
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_INVALIDPIXELFORMAT
- DDERR_INVALIDSURFACETYPE
- DDERR_NOEXCLUSIVEMODE
- DDERR_NOPALETTEATTACHED
- DDERR_NOPALETTEHW
- DDERR_NOT8BITCOLOR
- DDERR_SURFACELOST
- DDERR_UNSUPPORTED
注解
调用 SetPalette 以首次将调色板设置为图面时, SetPalette 会递增调色板的引用计数;对 SetPalette 的后续调用不会影响调色板的引用计数。 如果将 NULL 作为 lpDDPalette 参数传递,调色板将从图面中删除,调色板的引用计数将递减。 如果不删除调色板,则 Surface 会在释放表面本身时自动释放对调色板的引用。 根据 COM 规则,当不再需要对象时,应用程序必须释放它持有的对调色板的任何引用。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | ddraw.h |
Library | Ddraw.lib |
DLL | Ddraw.dll |