right, fix after finally reading the documentation properly

call SetWindowPos(... SWP_SHOWWINDOW) separately from SetWindowPos(position, size)