Тема: Принудительная прорисовка Jig

Необходимо во время вставки объекта динамически его изменять нажатиями клавиш клавиатуры (не передвижением мышки).
Сделал производный класс от AcEdJig в котором регистрируется фильтр сообщений, отлавливающий нажатие определенных клавиш. По нажатию клавиши вносятся изменения в объект переданный Jig'е (блок).
Проблема в том что изменения не отображаются на экране пока не произоидет перемещение курсора мыши.
Как можно принудительно перерисовать Jig.
Пробовал myjig->entity()->draw() Acad вылитает.

Re: Принудительная прорисовка Jig

Empty110 Empty110 пишет:

Проблема в том что изменения не отображаются на экране пока не произоидет перемещение курсора мыши.

Ну так и перемести курсор мыши программно.

Re: Принудительная прорисовка Jig

Я почти это и зделал. В конце своего фильтра сообщений вставил следующий код:

if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_LEFT))
{
  ...
  POINT lpoint;
  GetCursorPos(&lpoint);
  WINDOWINFO wininfo;
  wininfo.cbSize = sizeof(WINDOWINFO);
  GetWindowInfo(pMsg->hwnd, &wininfo);
  pMsg->message = WM_MOUSEMOVE; //подмена WM_KEYDOWN на WM_MOUSEMOVE
  pMsg->wParam = 0;
  pMsg->lParam = (wininfo.rcClient.left - lpoint.x + 1) | ((wininfo.rcClient.top - lpoint.y) << 16);
  return FALSE;
}
...
тоесть приложению приходит сообщение о перемещении курсора (хотя курсор конечно остается на месте :D).
Все получается.
Пробовал оставлять координаты текущими (без изменения + 1) обновления картинки нет (в переопределенном мной методе myjig->update() проверки на изменение координат нет).
Но я хотел бы всетаки узнать есть ли возможность дать команду Jig'у отрисоваться без этих ухищрений.

Re: Принудительная прорисовка Jig

Empty110 Empty110 пишет:

Но я хотел бы всетаки узнать есть ли возможность дать команду Jig'у отрисоваться без этих ухищрений.

Без хуков это сделать (IMHO) нельзя, так как этот класс не рассчитан на обработку нажатия клавиш - только положение курсора и ключевые слова.