Windows WS_EX_分层窗口不会相对于其父窗口移动

Windows WS_EX_分层窗口不会相对于其父窗口移动,windows,winapi,win32gui,Windows,Winapi,Win32gui,我创建了一个具有WS_EX_分层扩展样式的窗口。 在此之后,我将此窗口的父窗口更改为acall到SetParent。 但当我在桌面上移动父窗口时,我的窗口并没有改变它相对于父窗口的位置 int translevel = 50; /* 0 - 255 */ SetWindowLong(m_hWnd,GWL_EXSTYLE,GetWindowLong(m_hWnd,GWL_EXSTYLE)|WS_EX_LAYERED ); ::SetLayeredWindowAttribu

我创建了一个具有WS_EX_分层扩展样式的窗口。 在此之后,我将此窗口的父窗口更改为acall到SetParent。 但当我在桌面上移动父窗口时,我的窗口并没有改变它相对于父窗口的位置

int translevel = 50;  /* 0 - 255 */
      SetWindowLong(m_hWnd,GWL_EXSTYLE,GetWindowLong(m_hWnd,GWL_EXSTYLE)|WS_EX_LAYERED );
      ::SetLayeredWindowAttributes(m_hWnd,RGB(0,0,0),translevel, 0x02);

      HWND hParent  = ::FindWindow(TEXT("TSSHELLWND"), NULL);

      ::SetParent(m_hWnd, hParent);
注意:-TSSHELLWND是mstsc会话窗口。我想把我的窗口作为mstsc会话窗口的子窗口


它不会移动,因为我在子窗口上应用了LAYESRED属性吗???

在Windows8之前的系统上,不能在子窗口上使用
WS\u EX\u LAYERED

Windows 8:顶级窗口和子窗口支持WS_EX_分层样式。以前的Windows版本仅支持顶级Windows的WS_EX_分层


在Windows8之前的系统上,您不能在子窗口上使用
WS\u EX\u LAYERED

Windows 8:顶级窗口和子窗口支持WS_EX_分层样式。以前的Windows版本仅支持顶级Windows的WS_EX_分层


嗯,它不是子窗口,只有顶级窗口可以是分层窗口。使它成为系统窗口的父窗口,无论TShellwnd是什么,看起来都相当麻烦。当然它以前不是那个窗口的子窗口。好吧,它不是子窗口,只有顶级窗口可以是分层窗口。使它成为系统窗口的父窗口,无论TShellwnd是什么,看起来都相当麻烦。这肯定不是以前那个窗户的儿童窗户。