0

我创建了一个具有 WS_EX_LAYERED 扩展样式的窗口。之后,我将此窗口的父级更改为对 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 属性????

4

1 回答 1

3

您不能WS_EX_LAYERED在 Windows8 之前的系统上的子窗口上使用。文档说了这么多

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

于 2012-05-11T14:52:04.383 回答