У меня не полноэкранное окно DirectX, в котором отображается видео, которое мне для приложений необходимо как перемещать, так и иногда менять программно со скрытого / видимого.При переходе от скрытого к видимому окну иногда может потребоваться переместить его на новую позицию, прежде чем оно будет показано.
Я скрываю окно с помощью ShowWindow(hWnd, SW_HIDE)
.Когда я хочу снова показать окно на новой позиции, я сначала перемещаю его с помощью SetWindowPos
с использованием новых координат и флагов SWP_NOREDRAW
и SWP_NOZORDER
(я не хочу связываться с Z-порядком).
Затем я звоню ShowWindow(hWnd, SW_SHOW)
, чтобы окно появилось на новой позиции.Это прекрасно работает, за исключением того, что окно кратковременно появляется в том месте, где оно было в последний раз видимым, до того, как оно появляется в новой правильной позиции.
Я попытался использовать альтернативы MoveWindow
(с repaint-option, установленным в false)и GetWindowPlacement
вместе с SetWindowPlacement
(с соответствующими флажками), но они дают одинаковый результат.
Как заставить окно появиться в правильном положении при переходе от скрытого к видимому?