Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Архив некоторых форумов
>
Архив вопросов по программированию
>
C/C++
>
WinAPI & Visual C++
> Тема:
CDC
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: CDC (Прочитано 10551 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
CDC
«
:
18-08-2005 16:17 »
Такая проблема.
Нужно создать девайс-контекс устройства похожего на текущий монитор, за исключением одного пункта - цветов в новом девайс-контексте должно быть только 8.
Пробовал сделать следующим кодом:
HDC hDC = ::GetDC(NULL);
CDC *pWinDC = CDC::FromHandle(hDC);
CDC dc;
dc.CreateCompatibleDC(pWinDC);
CDC::DeleteTempMap();
::DeleteDC(hDC);
pWinDC = NULL;
//get display's mode
DEVMODE DevMode;
BOOL b1 = EnumDisplaySettings(NULL, // display device
ENUM_CURRENT_SETTINGS, // graphics mode
&DevMode // graphics mode settings
);
DevMode.dmBitsPerPel = 8;
dc.ResetDC(&DevMode);
Не получилось. ResetDC возвращает False. И устройство которое после этого получается - получается монохромным.
Может кто подскажет метод?
«
Последнее редактирование: 19-12-2007 19:13 от Алексей1153++
»
Записан
Сила ночи, сила дня - одинакого фигня....
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
Re: CDC
«
Ответ #1 :
18-08-2005 16:17 »
В смысле не 8 цветов, а 8-ми битовый цвет конечно. То есть цветов 256.
Записан
Сила ночи, сила дня - одинакого фигня....
PSD
Главный специалист
Offline
Пол:
Re: CDC
«
Ответ #2 :
25-08-2005 09:02 »
Я могу ошибаться (давно было и сейчас нет под руками того проекта), помоему нужно создать както так....
CDC dc;
dc.CreateCompatibleDC(pWinDC);
CBitmap mBMP;
mBMP.CreateBitmap(100,100,3,8,NULL) ;
dc.SelectObject(&mBMP);
....
Попробуй....
Записан
Да да нет нет все остальное от лукавого.
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
Re: CDC
«
Ответ #3 :
25-08-2005 09:50 »
К сожалению контекст устройства при таком методе не переписывается.
Попробую по другому сформулировать условие задачи.
CDC dc;
dc.CreateCompatibleDC(pWinDC);
Создает DC с глубиной цвета равной текущему монитору. То есть если у юзверя стоит 32 битовый цвет, то и глубина цвета на созданном DC будет равна 32.
Надо оставить все остальные настройки для DC ровно такими же ка были и поменять только максимальную глубину цвета на 8-бит.
Записан
Сила ночи, сила дня - одинакого фигня....
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
Re: CDC
«
Ответ #4 :
25-08-2005 11:02 »
CreateCompatibleBitmap с нужными настройками как в прошлом примере вместо просто битмапки с изменениями в характеристиках должны спасти отца русской демократии....
Записан
А птичку нашу прошу не обижать!!!
ChaoticCube
ChaoticCube
Помогающий
Offline
Пол:
ChaoticCube
Re: CDC
«
Ответ #5 :
25-08-2005 11:09 »
спасибо. Проверю в работе.
Записан
Сила ночи, сила дня - одинакого фигня....
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Архив некоторых форумов
>
Архив вопросов по программированию
>
C/C++
>
WinAPI & Visual C++
> Тема:
CDC
Загружается...