if i understand a problem correctly, AcEditorReactor::commandEnded can't help in all cases, cause you want to see changes inside pan/zoom. So, as a variant, Hook on mouse events is what you need. inside hook use pEnt->draw()
you need in something like the code below:
int startCommand = 0;
BOOL redrawHook(MSG* pMsg)
{
if (pMsg->message == WM_MOUSEWHEEL)
{
if (startCommand < 2)
{
startCommand++;
PostMessage(adsw_hwndAcad,pMsg->message,pMsg->wParam,pMsg->lParam);
return FALSE;
}
else
{// will work for 1/3 of mousewheel
CYourClassApp::your_transparent_command();
startCommand = 0;
return TRUE;
}
}
if (pMsg->message == WM_MBUTTONUP)
{
CYourClassApp::your_transparent_command();
return FALSE;
}
return FALSE;
}
class CYourClassApp : public AcRxArxApp {
virtual AcRx::AppRetCode On_kInitAppMsg(void* pkt)
{
...
acedRegisterFilterWinMsg(redrawHook);
...
}
virtual AcRx::AppRetCode On_kUnloadAppMsg(void* pkt)
{
...
acedRemoveFilterWinMsg(redrawHook);
...
}
static void your_transparent_command()
{
// force "draw" for needed entities using pEnt->draw();
}
}