событие Application.BeginDoubleClick

Автор Тема: событие Application.BeginDoubleClick  (Прочитано 6594 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
событие Application.BeginDoubleClick
« : 03-03-2017, 00:40:49 »
При отслеживании события Application.BeginDoubleClick есть возможность отметить стандартное действие? Например, при двойном клике на полилинии вызывается команда _pedit, а я хочу выполнять свои действия.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: событие Application.BeginDoubleClick
« Ответ #1 : 03-03-2017, 01:36:09 »
Можно. Но тогда из CUIX должны быть убраны соответствующие обработчики.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: событие Application.BeginDoubleClick
« Ответ #2 : 03-03-2017, 09:45:42 »
Обработчики в CUIX???

И как отменить стандартное действие при BeginDoubleClick?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: событие Application.BeginDoubleClick
« Ответ #3 : 03-03-2017, 13:30:34 »
Появилась безумная идея, как такое можно сделать :)
При помощи моего любимого события - Application.PreTranslateMessage.
Любое действие пользователя по отношению к AutoCAD проходит через него. В этом же событии есть возможность пропускать действие дальше в AutoCAD или нет. Возможно, что получится как-то анализировать действия мыши и не пропускать двойные клики в приложение, подменяя их своим действием.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: событие Application.BeginDoubleClick
« Ответ #4 : 03-03-2017, 14:19:08 »
Обработчики в CUIX???

И как отменить стандартное действие при BeginDoubleClick?



Удалить стандартное действие для полилинии. Или вообще заменить на твоё (в виде команды). Можно это сделать при помощи Customize API. И тогда обработка события Application.BeginDoubleClick не нужна. Пример: http://adndevblog.typepad.com/autocad/2012/09/displaying-entity-details-on-double-click.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: событие Application.BeginDoubleClick
« Ответ #5 : 03-03-2017, 14:21:19 »
Появилась безумная идея, как такое можно сделать :)
При помощи моего любимого события - Application.PreTranslateMessage.
Любое действие пользователя по отношению к AutoCAD проходит через него. В этом же событии есть возможность пропускать действие дальше в AutoCAD или нет. Возможно, что получится как-то анализировать действия мыши и не пропускать двойные клики в приложение, подменяя их своим действием.
Идея не безумная, но и не так просто реализуемая.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: событие Application.BeginDoubleClick
« Ответ #6 : 03-03-2017, 14:47:36 »
Да, через Customize API попроще будет. А главное - надежнее.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: событие Application.BeginDoubleClick
« Ответ #7 : 03-03-2017, 14:52:10 »
Через Customize API я уберу действие совсем - со всех полилиний, а мне нужно на одних оставить стандартное, а на "моих" - заменить на свой обработчик.
Посмотрю, что можно сделать с помощью Application.PreTranslateMessage.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: событие Application.BeginDoubleClick
« Ответ #8 : 03-03-2017, 15:55:07 »
Через Customize API я уберу действие совсем - со всех полилиний, а мне нужно на одних оставить стандартное, а на "моих" - заменить на свой обработчик.
Заменяешь для всех полилиний на свой обработчик. В своём обработчике идентифицируешь "свой" или "чужой". Для "своих" - своя обработка, для "чужих" вызываешь стандартный обработчик.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение