Тема: Обновление области чертежа

AutoCAD 2006. Собственная палитра, т.е. немодальное окно. Нажимаю на ней кнопку, по которой на некоторых блоках меняются значения атрибутов. Проблема: изменения не сразу видны.
Причем, допустим, мышкой нажимаю кнопку на палитре, ничего не видно, а как только шелкнуть, а иногда просто перевести курсор мыши в область чертежа - она сразу обновляется и изменения видны.
Пробовал acedRedraw( NULL, 1) - не помогает. acedGetAcadDwgView()->RedrawWindow() тоже - видно, что окно обновляется, моргает, но чертеж не перерисовывается, пока не щелкнешь мышью по области чертежа. Может, есть еще способы заставить автокад обновить графику?

Re: Обновление области чертежа

Можешь еще попробовать:

void ads_regen(void);

Хотя это врядли поможет.
Более вероятно, что поможет:

acedGetAcadDwgView()->SendMessage(WM_MOUSEMOVE,0,0);

Re: Обновление области чертежа

ads_regen() помог, спасибо, Александр.
Второй способ, мне больше импонирует, как-то не очень хочется постоянно весь чертеж регенить, но он не работает. Еще заметил такую вещь - пока палитра не теряет фокус, чертеж не обновляется, как будто палитра ему мешает. Если палитра не прилеплена к краю окна, то она теряет фокус, как только курсор мыши выходит за ее пределы, и, соответственно, чертеж обновляется. Если же палитра прилеплена, то двигать мышью мало, надо еще кнопку нажать, чтобы обновить...

Re: Обновление области чертежа

Еще один вариант - после всех модификаций выполнить:

  CWnd *wnd =  acedGetAcadDwgView()->SetFocus();
  actrTransactionManager->queueForGraphicsFlush();
  actrTransactionManager->flushGraphics();
  acedUpdateDisplay();
  wnd->SetFocus();

Re: Обновление области чертежа

А вот

actrTransactionManager->queueForGraphicsFlush();
actrTransactionManager->flushGraphics();

помогло. Даже без всего остального. Спасибо.

Re: Обновление области чертежа

:) Ну и отлично. Я на всякий случай перестраховался.