Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Почему SetDIBColorTable не работает?

4.3K
10 июня 2003 года
untied
1 / / 10.06.2003
Привет всем.

Программка у меня простая, но заставить ее работать никак не получается.

Я создаю функцией CreateDIBSection 8-битовый битмап (т.е. всего 256 цветов в нем). Создаю совместимый с DC главного окна контекст, выбираю в него этот созданный битмап. Потом по событию WM_KEYDOWN делаю BitBlt из совместимого контекста в контекст окна.
Теперь мне надо поменять палитру у этой самой битмапы. К примеру, поменять нулевой цвет палитры с черного на зеленый, а потом закрасить весь битмап нулевым цветом. В функцию SetDIBColorTable я передаю мой совместимый контекст (в котором созданный битмап выбран) и параметры палитры. Вызываю функцию, но ничего не происходит.
Либо она возвращает нуль (а GetLastError цифру 8, что значит "Invalid handler"), либо 1 (поскольку я только один цвет меняю в палитре), но сам цвет в палитре остается без изменения (судя по результату последующего BitBlt).

Что я делаю неправильно? Может палитру нужно не только менять у битмапы, но еще у контекста, в котором она хранится? Или еще и у контекста главного окна?

У меня Win2K, видеорежим TrueColor 24 бита, компилятор Borland C++ 5.01 (ну вот такой у меня завалялся :D )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог