CBaseWindow.SetPalette 方法 (Winutil.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 SetPalette 为窗口安装调色板。

语法

virtual HRESULT SetPalette(
   HPALETTE hPalette
);

参数

hPalette

新调色板的句柄。 不能为 NULL

返回值

返回下表中显示的 HRESULT 值之一。

返回代码 说明
S_FALSE
内部调用 GdiFlush 返回错误。
S_OK
成功。

备注

如果 CBaseWindow::m_bNoRealize 成员变量的值为 FALSE (默认) ,则此方法选择调色板并实现它。 否则,它会选择调色板,但不会实现它。 对象不会删除它之前使用的任何调色板。 调用方负责删除调色板。

任何线程都可以安全地调用此方法,而不仅仅是拥有窗口的线程。 窗口向自身发送私人消息,这会触发对 CBaseWindow::OnPaletteChange 方法的 调用。

要求

要求
标头
Winutil.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CBaseWindow 类