|
154 / 31 / 11
Регистрация: 29.10.2012
Сообщений: 397
|
||||||
Не получается рисовать больше чем одну линию в win3207.11.2012, 22:52. Показов 2510. Ответов 1
Метки нет (Все метки)
Здравствуйте снова,
Цель такова: надо сделать программу типа Paint. Одна из возможностей - рисовать прямую линию. Начало там, где щелкают мышкой, пока кнопка зажата, можно двигать курсор куда угодно, а при отпускании линия фиксируется. Проблема в том, что, если использую InvalidateRect(hWnd, 0, true), то тогда при рисовании второй линии первая исчезает, а если использовать InvalidateRect(hWnd, 0, false), то линии рисуются при каждом Mouse Move с нажатой клавишей, а предыдущие не стираются. Помогите пожалуйста.
0
|
||||||
| 07.11.2012, 22:52 | |
|
Ответы с готовыми решениями:
1
Как в VB сделать паузу больше,чем в одну минуту? Как рисовать линию с координатами double Почему Microsoft больше не публикует книги по Win32 API? В частности, разработка графического интерфейса с Win32 |
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 07.11.2012, 23:49 | |
|
при таком дизайне врятли у вас что-то хорошее получится.
примерное решение может быть таким: пусть есть объект линия, в котором есть поля: координаты первой точки, координаты второй точки и цвет. при перерисовки окна нужно прорисовывать все линии из этого массива. кроме этого есть еще временный объект линии, который тоже должен прорисовываться, если он есть. когда юзер тыкает мышкой по экрану, появляется этот временный объект линии, у которого первая точка - это координаты щелчка, вторая точка - координаты мыши. когда юзер отпускает мышку, копия этой линии попадает в массив, а сам объект временной линии исчезает и больше не прорисовывается, пока юзер не повторит то, что проделал первый раз. тут появляется возможность редактировать уже имеющиеся линии, удалять их и т.п. можно кстати без этой временной линии и обойтись одним лишь массивом. когда юзер тыкает мышкой, в конец массива заносится новая линия. когда он двигает мышкой, вторая точка этой последней линии подправляется на координаты мышки и посылается запрос на перерисовку. перерисовка простая - пробежать по всему массиву линий и нарисовать их. Тут нужно еще вспомнить классический пример ООП - базовый класс фигуры и всякие производные от него. В этом случае можно будет работать не только с линиями, но и с любыми другими фигурами.
1
|
|
| 07.11.2012, 23:49 | |
|
Помогаю со студенческими работами здесь
2
Исходник LineTo(),или как рисовать линию Разработать программу позволяющюю рисовать линию между точками Рисовать в Win32 как в Paint Как рисовать линию с помощью мыши, не стирая уже нарисованного Прекратить рисовать линию, если ее конец достиг другой нарисованной фигуры (круга) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|