Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 10.09.2009
Сообщений: 12

Событие Paint

19.09.2009, 21:56. Показов 2894. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Задача: прорисовывать на объекте TPanel картинку.
Код:
C++
1
2
3
4
5
6
        HDC  hDc = GetDC(frmMain->mainView->Handle);
        for(int i=0; i < 100;i++)
                SetPixel(hDc,i,100,RGB(0,0,255));
 
        DrawTemperature(hDc);
        ReleaseDC(frmMain->mainView->Handle,hDc);
Если засунуть этот код в событие Paint формы, то рисования не происходит
Если вставить в событие Paint такой код, то всё отрисовывается правильно:
C++
1
2
3
4
5
6
7
        MessageBox(NULL,"Prived!","!",MB_OK);
        HDC  hDc = GetDC(frmMain->mainView->Handle);
        for(int i=0; i < 100;i++)
                SetPixel(hDc,i,100,RGB(0,0,255));
 
        DrawTemperature(hDc);
        ReleaseDC(frmMain->mainView->Handle,hDc);
Таким образом, как я понимаю, в первом случае отрисовка не происходит, так как событие Paint происходит до отрисовки объектов. Во втором случае появление месадж бокса создаёт паузу, после которой отрисовка происходит после отрисовки компонента.
Каким образом достучаться до события Paint самой панели? (оператор Sleep для формы не подходит - он задерживает ещё и отрисовку компонентов)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2009, 21:56
Ответы с готовыми решениями:

С++Builder+Paint
Подскажите как реализовать следующую задачу: Требуется по по нажатию из оптеделенного поля дбгрида значение сперва 1)Открыть в каком-либо...

c++ работа с Paint Box
у меня проблема. мне нужно сделать анимацию в PaintBox. палет точки по координатам заданным в таблице то что я пишу не подходит подскажите....

Создание Paint-а в Builder-е
Помогите как зделать paint в c++ Builder Заране спасибо

2
6 / 6 / 1
Регистрация: 25.07.2009
Сообщений: 49
19.09.2009, 22:13
я использовал функции SetPixel (или SetPixelV) с картинками TImage, после этого требовалось обновить картинку функцией Refresh, с панелью, видимо, тоже самое.
1
0 / 0 / 1
Регистрация: 10.09.2009
Сообщений: 12
19.09.2009, 22:20  [ТС]
Не совсем то.... когда рисование рпоисходи по кнопке - всё ОК. Дело именно в том, что бы рисовать после обновления элемента, а не до.

Добавлено через 3 минуты
Проблема решается, если для frmMain в событии Paint
вызвать метод Refresh для картинки ДО использования SetPixel, а не после, как Вы говорите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2009, 22:20
Помогаю со студенческими работами здесь

Увеличить изображение как в Paint
Как увеличить изображение как в Paint?

Paint, изменить форму кисти
Здравствуйте, хочу сделать программу Paint, все получается, кроме одного (на картинке показано стрелочкой). В Image нужно вывести круглой...

Paint - как сделать вставку текста
К концу семестра нужно сделать Paint. Все основное, такое как карандаш, кисть, распылитель, линии и т.д. сделал. Вот не знаю, как сделать...

Как открыть Paint через проект?
Подскажите код для открытия через свой проект Paint компютера? Например, у меня текстовий редактор с возможностю вставки картинки. так...

Графический редактор типа Paint.Net
Можете выложить исходник растрового графического редактора на C++Builder типа paint.NET'a, чтобы были фильтры, эффекты и т.д.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru