AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.09.2007, 12:52   #1  
Asterisk is offline
Asterisk
Участник
 
36 / 16 (1) ++
Регистрация: 24.10.2005
Адрес: Москва
"Резиновая нить" при рисовании на картинке
Здравствуйте , уважаемые коллеги !
Хочу спросить , реализовывал ли кто - нибудь метод рисования "Резиновой нити" в Аксапте . То есть жмякаешь на image левой кнопкой мыши , удерживая кнопку ведешь мышью до определенной точки , и по мере движения динамически перерисовывается прямоугольник который ты хочешь нарисовать . После отпускания кнопки , рисуется закрашенный прямоугольник . В винде я в давние времена делал это так :

void CProgressBarPainter:rawTempProgressBar(){
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) - инвертированный режим рисования . А вот как это делать в аксапте , с чего начать - не знаю Может кто-нибудь это уже реализовывал и поделится проектиком ?
Старый 21.09.2007, 13:02   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
AxPath://AOT/Classes/WinGDI/setROP2
За это сообщение автора поблагодарили: Asterisk (1).
Старый 21.09.2007, 13:15   #3  
Asterisk is offline
Asterisk
Участник
 
36 / 16 (1) ++
Регистрация: 24.10.2005
Адрес: Москва
Спасибо . Буду разбираться с этим классом
Старый 21.09.2007, 13:32   #4  
Asterisk is offline
Asterisk
Участник
 
36 / 16 (1) ++
Регистрация: 24.10.2005
Адрес: Москва
только я поторопился
нет в Ax 30 sp 4 такого метода . Впрочем я полагаю что его по аналогии с другими методами в этом классе можно дописать ...
Старый 21.09.2007, 14:48   #5  
Zuzaz is offline
Zuzaz
Участник
 
119 / 18 (1) ++
Регистрация: 22.09.2006
PS Если не ошибаюсь, для "резиновой нити" есть отдельный термин - "пендинг" (pending).
Старый 21.09.2007, 14:50   #6  
Asterisk is offline
Asterisk
Участник
 
36 / 16 (1) ++
Регистрация: 24.10.2005
Адрес: Москва
возможно
вообще это классика - как правило в любой книге по программированию в винде есть пример этого пендинга Разберусь с ним в Аксапте - выложу проект
Старый 25.09.2007, 12:18   #7  
Asterisk is offline
Asterisk
Участник
 
36 / 16 (1) ++
Регистрация: 24.10.2005
Адрес: Москва
реализовал
Добрались руки чтобы выложить простейший пример реализации резиновой нити в Аксапте . Надеюсь кому-то будет полезно в его рисовальческих изысках После выделения фигуры выполняется ее заливка . Тут тоже своя история . Есть форма tutorial_OCRTraining которая меня лично учит рисовать залитые черной краской прямоугольники . Так вот несмотря на то что они закрашиваются черной краской , эта закраска легко "стирается" паразитным окном . Да и вообще я столкнулся с тем что если окно "закрасить" используя winGDI.fillRect , то при достаточно большой картинке она начинает "осыпаться", то есть закрашенная ваши фигура через некоторое время пропадает . Поэтому решено было пойти другим , более топорным путем - расширить стандартный класс Image чтобы научить рисовать его прямоугольники и эллипсы .
Вложения
Тип файла: xpo xPending.xpo (30.3 Кб, 449 просмотров)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Неудобство использования аналитик "Цвет" и "Размер" clerk DAX: Функционал 17 23.05.2005 13:08
Кнопки "Строки" в "Общем журнале" ands DAX: Администрирование 2 03.02.2005 12:34
"BinData" против "Файл на дискe" ATimTim DAX: Программирование 8 08.12.2004 18:20
Юзал кто-нить "скидку по оплате" и какие траблы при этом были Hamster DAX: Функционал 0 13.08.2004 16:03
"LIKE" и "OR" в "qbds" @x DAX: Программирование 14 20.01.2004 13:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:52.