我创建了一个具有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属性?
发布于 2012-05-11 14:52:04
您不能在前windows 8系统的子窗口上使用WS_EX_LAYERED。文件上也写着
windows 8:顶层窗口和子窗口支持WS_EX_LAYERED样式。以前的windows版本只支持顶层窗口的WS_EX_LAYERED。
https://stackoverflow.com/questions/10551692
复制相似问题