¿Cómo eliminar el estilo WS_EX_TOPMOST de la ventana?

Intento crear Windows para video usando la siguiente syntax:

hwnd=CreateWindow("Video Window", "Video window", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, rect.right-rect.left,rect.bottom-rect.top, NULL, NULL, hInstance, NULL); 

Todo funciona como se esperaba, pero el problema es que la ventana siempre está arriba. Significa que veo esta ventana incluso si cambio a otra aplicación.

Desde el progtwig de Window directive encontré un estilo adicional: WS_EX_TOPMOST

introduzca la descripción de la imagen aquí

¿Cómo puedo eliminarlo programáticamente o necesito anularlo de alguna manera?

Intenté SetWindowPos :

 SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 

o para usar en su lugar CreateWindow en CreateWindowEx :

 hwnd=CreateWindowEx(WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_WINDOWEDGE, "Video Window","Video Window", WS_OVERLAPPEDWINDOW | WS_VISIBLE , CW_USEDEFAULT, CW_USEDEFAULT, rect.right-rect.left, rect.bottom-rect.top, NULL, NULL, hInstance, NULL); 

pero aún así obtener la bandera WS_EX_TOPMOST

Gracias,

Una forma de hacerlo es consultar la ventana para su estilo extendido actual, antes de borrar los bits que corresponden a WS_EX_TOPMOST y configurar el nuevo estilo extendido.

Algo como esto:

 long dwExStyle = GetWindowLong(hwnd, GWL_EXSTYLE); dwExStyle &= ~WS_EX_TOPMOST; SetWindowLong(hwnd, GWL_EXSTYLE, dwExStyle); 
 ::SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE|SWP_NOACTIVATE);