![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| KasMP |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Есть граф. Мы вычисляем для каждой вершины подходящий ей цвет и потом хотим все это нарисовать.
У меня получилось все кроме непосредственно заливки окружностей, соответствующих вершинам. Судя по всему, нам не обойтись без сплошных кистей:
Кисть, как и любой другой объект, надо создать:
Ну а теперь осталось связать вместе
Вот только у меня все начинается с очень странной ошибки
и непонятно, как можно что-то рисовать, не получив hdc. Почему у всех все работает, а у меня вечно какая-то глупая ошибка? Добавлено через 3 минуты и 34 секунды Граф:
Ф-я, рисующая существующий граф:
|
||||||||||||
|
|||||||||||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Это похоже на GDI+ . Тогда явно не хватает.
и
Но это метод класса Graphics . Если же нужно использовать GDI, то функция называется Ellipse. Она тоже заливает фигуру. Добавлено через 3 минуты и 23 секунды Вот тут можно почитать http://msdn.microsoft.com/en-us/library/dd162510(VS.85).aspx Добавлено через 7 минут и 39 секунд А вот еще такое чтобы кисть заработала нужно ее выбрать для конетекста функцией SelectObject -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
и для вопросов по WinAPI есть соответствующая тема, там больше шансов на ответ
|
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Да, нужно Т.е. надо поменять текущую кисть Добавлено через 1 минуту и 27 секунд
Я смотрела тот раздел... Там намного более глубокие и сложные вопросы, чем мои. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Функция SelectObject меняет у контекста вспомогательные объекты. Кисти, карандаши и т.д. 1) параметр контекст на котором рисуем. 2) дескриптор новой кисти. 3) результат дескриптор старой кисти. Добавлено через 3 минуты и 46 секунд P.S. старую кисть нужно сохранить, и потом по выходу вернуть на место, свою кисть уничтожить. По окончанию текущего кадра все что использовалось следует удалить или освободить. Разве что битмапы не стоит удалять (если используются). Рисовать можно не везде и не всегда. Правильно рисовать, по получению сообщения WM_PAINT. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Alexeis, благодаря твоим ответам я поняла, в каком направлении искать, и нашла
Да, я это понимаю. DrawGraph() вызывается в WM_PAINT Добавлено через 3 минуты и 23 секунды То, что мне полностью помогло: |
|||
|
||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
это не совсем верно, поскольку новые API, которые осуществяют поддержку с темами XP, определяют GDI объекты в ран-тайме в зависимости от выбранной конфигурации (в расширении VS), так что при возврате таких функций могут присутствовать как предопределенные объекты, так и заказные, так что, если частичная или полная интеграция двух API: GDI и VisualStyles таки произойдет, то все программы, которые это не учитывают, будут генерировать утечки GDI-ресурсов хотя майкрософт пока на это и не особенно акцентируется, но внимание, таки обращает:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
GremlinProg, спасибо большое
Добавлено через 5 минут и 9 секунд Вобщем внутри DrawGraph() у меня появилось примерно такое:
Вроде бы все правильно. Да |
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
||||
|
||||
| bitt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 4.4.2009 Репутация: нет Всего: нет |
а исходник этой программы может выложить кто нибудь ?
|
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Ребят, я наивно верю, что у кого-то из вас есть желание взять мой полный проект на WinAPI (ищущий для графа 4-раскраску и рисующий ее), поковыряться в нем и покритиковать его
Желающим пришлю на мыло |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Можно тут приатачить к посту. Тогда им смогут полюбоваться намного больше народу -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Alexeis, вот именно, что тогда многие только картинки посмотрят, а непосредственно вникать мало кто захочет
А если человек уже напишет сюда о своем желании, то тогда он точно настроен |
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
GremlinProg, твое сообщение
Пожалуйста, скажи еще несколько ключевых слов, связанных с этой проблемой, чтобы было проще искать |
|||
|
||||
| Forsaken |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 30.12.2008 Репутация: нет Всего: 3 |
KasMP,
А он ведь Вам все уже рассказал. Проблема ясна, и рекомендация по решению есть. И слов много для поиска |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |