![]() |
#1 |
Участник
|
"Резиновая нить" при рисовании на картинке
Здравствуйте , уважаемые коллеги !
Хочу спросить , реализовывал ли кто - нибудь метод рисования "Резиновой нити" в Аксапте . То есть жмякаешь на image левой кнопкой мыши , удерживая кнопку ведешь мышью до определенной точки , и по мере движения динамически перерисовывается прямоугольник который ты хочешь нарисовать . После отпускания кнопки , рисуется закрашенный прямоугольник . В винде я в давние времена делал это так : void CProgressBarPainter: ![]() CClientDC dc(GetView()); CPoint point = dc.SetWindowOrg(GetView()->GetScrollPosition( )); CPen pen,*selPen; pen.CreatePen(PS_SOLID,1,GetView()->GetProgressBarColor()); selPen = dc.SelectObject(&pen); dc.SetROP2(R2_NOT); CRect rect(m_initPoint.x,m_initPoint.y,m_currPoint.x,m_bottom_y_coord); dc.MoveTo(rect.left,rect.top); dc.LineTo(rect.right,rect.top ); dc.LineTo(rect.right,rect.bottom); dc.LineTo(rect.left,rect.bottom); pen.DeleteObject(); } Ключевыми здесь являются строки dc.SetROP2(R2_NOT) - инвертированный режим рисования . А вот как это делать в аксапте , с чего начать - не знаю ![]() ![]() |
|
![]() |
#2 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Asterisk (1). |
![]() |
#3 |
Участник
|
Спасибо . Буду разбираться с этим классом
|
|
![]() |
#4 |
Участник
|
только я поторопился
нет в Ax 30 sp 4 такого метода . Впрочем я полагаю что его по аналогии с другими методами в этом классе можно дописать ...
|
|
![]() |
#5 |
Участник
|
PS Если не ошибаюсь, для "резиновой нити" есть отдельный термин - "пендинг" (pending).
|
|
![]() |
#6 |
Участник
|
возможно
вообще это классика - как правило в любой книге по программированию в винде есть пример этого пендинга
![]() |
|
![]() |
#7 |
Участник
|
реализовал
Добрались руки чтобы выложить простейший пример реализации резиновой нити в Аксапте . Надеюсь кому-то будет полезно в его рисовальческих изысках
![]() |
|