Поделиться через


Метод CBaseWindow.SetPalette (Winutil.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие 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