![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
.Net C# програмер
Регистрация: 06.10.2007
Сообщений: 5
|
![]()
Нужно написать програмку с помощью Win API , в которой рисуется круг, и при нажатии мышкой на етот круг его можно было бы перетягивать на форме.
как рисовать круг я разобрался: Код:
ЗЫ: желательно на C++ Builder 6 |
![]() |
![]() |
![]() |
#2 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
![]()
Если вопрос в проверке нажатия указателем, то при чем здесь название темы "Рисование графики на Win Api помогите"?
На счет вопроса, то просто проверяйте в событии MouseMove текущее положение курсора. Например , если оно за пределами какой-то области, то реагировать по-другому. А что вы хотите реализовать? |
![]() |
![]() |
![]() |
#3 | |
.Net C# програмер
Регистрация: 06.10.2007
Сообщений: 5
|
![]() Цитата:
большое спасибо за пример........... а на счет названия темы то меня кроме MouseMove интересует как перерисовать Ellipce c новыми координатами(самое главное как ети координаты получить) |
|
![]() |
![]() |
![]() |
#4 | |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
![]() Цитата:
А коррдинаты ты никак не получишь. Разве что, можешь считать побитово через контекст устройства для дальнейшего анализа, но это двлеко не оптимальный и главное, медленный вариант. |
|
![]() |
![]() |
![]() |
#5 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Написать не напишу, в чистом WinAPI не силен, могу на пальцах объяснить.
Нужна bool переменная, чтобы определять просто мышкой водим - false, или таскаем - true bool drag; По нажатию левой кнопки мыши (если оно в пределах круга) присваиваем ей true, при отпускании (в любом случае) false. По движению мыши, если drag == true изменяй коодинаты отрисовки круга и вызывай WM_PAINT, вот и все. p.s. а координаты узнавай из сообщения MOUSE_MOVE (или как там его). Если хочешь красиво чтоб было, т.е. в каком месте взял, за него же и таскалось (а не так чтобы от указателя мыши рисовалось) то надо еще две int переменные - смещение по осям X и Y, то есть координата отрисовкиX = координата мышиX - смещениеX то же для Y
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 06.10.2007 в 20:28. |
![]() |
![]() |
![]() |
#6 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
![]()
Аффтар имел ввиду получение координат самой нарисованной фигуры, что сделать нельзя. Можно с самого начала их запомнить и контроллировать их значения в переменной или массиве (если фигур несколько). То, что рисованное вне области определения среды программирования (буть то Дельфи или Бейсик) - доступно для контрля и/или анализа также ВНЕ среды. То есть нарисовал на АПИ - тем же АПИ и читаешь/управляешь. Управлять можно теми обьектами, у каких есть хендлер. Поскольку фигура эллипс - не обьект, - ты не сможешь его захватить. Вожно лишь захватить DC и работать битово с ним.
Кстати, на каком языке делаете? |
![]() |
![]() |
![]() |
#7 | |
.Net C# програмер
Регистрация: 06.10.2007
Сообщений: 5
|
![]() Цитата:
на счет языка я писал в самом начале на С++ |
|
![]() |
![]() |
![]() |
#8 |
Laravel/Vue expert
Старожил Подтвердите свой е-майл
Регистрация: 08.08.2007
Сообщений: 2,832
|
![]() |
![]() |
![]() |
![]() |
#9 |
.Net C# програмер
Регистрация: 06.10.2007
Сообщений: 5
|
![]()
УРАААА!!!!!! получилось почти то что я хотел!!!!!
![]() всем спасибо ![]() ![]() ![]() единственное что я не сделал, может вы мне подскажите, при прорисовке ellipce вводятся координаты верхней левой и нижней правой точки прямоугольника в который вписывается елипс, но получается что если нажимать мышку за елипсом там где углы прямоугольника елипс можно перетягивать, а мне нужно так сделать чтобы перетягивать можно было только при нажатии на елипс, может хто-нибудь знает как ето сделать? Код:
PS: писалась прога на Borland C++ Builder 6 |
![]() |
![]() |
![]() |
#10 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
ну раз ты юный ты наверное еще не забыл геометрию -
Пифагоровы штаны и прочее ![]()
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Графики в БД | ~LiS~ | БД в Delphi | 1 | 05.06.2008 22:19 |
графики | ZhekON | Помощь студентам | 6 | 10.04.2008 18:14 |
Графики | delphin100 | Общие вопросы Delphi | 6 | 16.03.2008 10:40 |