0
WS_EX_LAYERED拡張スタイルのウィンドウを作成しました。 その後、このウィンドウの親をSetParentに変更しました。 しかし、親ウィンドウをデスクトップ上に移動すると、ウィンドウはその親に対してそのウィンドウの位置が変更されません。WS_EX_LAYEREDウィンドウが親ウィンドウに対して移動しない
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属性を適用したため、移動しませんか?
さて、これは子ウィンドウではなく、トップレベルウィンドウだけがレイヤードウィンドウになることができます。それをシステムウインドウの親にすることは、どんなことであろうとかなり面倒です。確かにそれはその窓の子供の窓ではなかった。 –