|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
Рисование в графическом окне28.12.2016, 10:50. Показов 10864. Ответов 30
Метки нет (Все метки)
Всем здравствуйте.
Мы нарисовали на PictureBox средствами GDI+ или API графический примитив. Свернув-развернув форму мы получим чистое окно, наше рисование исчезнет. Вставлять код в обработчик Paint не вариант, так-как это не статический блок кода. Наверняка есть способ, позволяющий дублировать наше рисование в памяти и при перерисовке формы его восстанавливать.
0
|
|
| 28.12.2016, 10:50 | |
|
Ответы с готовыми решениями:
30
Рисование прямоугольника в графическом окне по двум кликам мыши |
|
|
||||||
| 04.01.2017, 21:31 | ||||||
|
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 05.01.2017, 18:43 [ТС] | |
|
diadiavova, не могли бы Вы переделать проект Painter (C#) без использования UserControl. Мои попытки перевести Ваш код на VB были безуспешны. Много непонятного и без строчки комментария. Взять хотя бы случай рисования мышью линии (нажал кнопку, протащил, отпустил). Неважно на форме или PictureBox. Тут уже я смогу транслировать на VB.
0
|
|
|
|
||
| 05.01.2017, 18:56 | ||
|
2
|
||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 05.01.2017, 18:59 [ТС] | |
|
diadiavova, Нет. Слишком большая разница особенно в коде дизайнера. Масса ошибок.
0
|
|
|
|
|
| 05.01.2017, 20:36 | |
|
jkrnd, я переводить тот проект не хочу, проще новый написать. В общих чертах это выглядит так
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 06.01.2017, 16:16 [ТС] | ||||||
|
diadiavova, С перерисовкой понял, спасибо! Возник ещё один вопрос: Возможно ли в GDI+ рисовать с использованием различных растровых операций?
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 08.01.2017, 19:10 [ТС] | ||||||
|
Кто-нибудь сможет объяснить почему не работает команда SetROP2(hDC, 7) в приведенном ниже коде. Другие API- функции, как видим, работают как положено.
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 15.01.2017, 20:31 [ТС] | |
Сообщение было отмечено OwenGlendower как решение
Решение
Решил проблему рисования средствами API с сохранением нарисованного в свойстве Image(BackGroundImage). Как самый наглядный вариант в примере рассматривается XORPEN-рисование. Может кому-то пригодится.
2
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 17.01.2017, 05:09 [ТС] | |
|
diadiavova, при перестроении выложенного Вами в посте #17 решения Painter (Рисование в графическом окне) возникает 12 предупреждений:
"Доступ к члену в "Painter.PaintCanvas._startPoint" может вызвать исключение времени исполнения, поскольку он является полем класса, который упаковывается и передается по ссылке". Как избавится от этих предупреждений?
0
|
|
|
|
|
| 17.01.2017, 12:17 | |
|
jkrnd, насчет предупреждений можешь не беспокоиться, это не ошибки, а просто опасные места. Ошибка времени исполнения может возникнуть, если поле _canvas не инициируется или где-то в коде уничтожается. Поскольку инициализация происходит в конструкторе, а сам контрол нигде не уничтожается - ошибки не возникнет. Да и сам класс, в котором появляется предупреждение, привязан к контролу, то есть если даже контрол будет уничтожен, то все связанные с ним экземпляры класса тоже не будут доступны.
А вообще, этот проект - не образец для подражания, а просто пример, к тому же старый. Именно так все делать я бы не рекомендовал. А как лучше сделать я в этой теме уже показал: используй либо пример с классами фигур, либо с пикчербоксом и битмэпом.
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 17.01.2017, 12:30 [ТС] | |
|
diadiavova, я убедился в том, что предупреждения можно игнорировать, когда перевёл код на VB. Там они почему-то исчезли сами собой. Спасибо! Ваш код очень помог мне понять как рисовать с сохранением нарисованного и без заморочек в основном коде.
0
|
|
| 17.01.2017, 12:30 | |
|
Рисование линии в графическом редакторе Работа с массивом в графическом окне
Ввод текста в графическом окне В графическом окне колеса со спицами - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|