Нашел в MSDN'e одно из возможных решений проблемы:
вместо
Код:
...
TrackPopupMenu (GetSubMenu(hMenu, 0), TPM_CENTERALIGN, point.x, point.y, 0, hWnd, NULL);
DestroyMenu (hMenu);
...
надо написать
Код:
...
SetForegroundWindow(hWnd);
TrackPopupMenu (GetSubMenu(hMenu, 0), TPM_CENTERALIGN, point.x, point.y, 0, hWnd, NULL);
PostMessage(hWnd, WM_NULL, 0, 0);
DestroyMenu (hMenu);
...
Все нормально (менюшка пропадает), кроме того, что связанное окно "всплывает" (что не очень нравится, мне по крайней мере).