我有一个程序,它显示一个主窗口、一个分层窗口并实现 COM 拖放。笼统:
- 我创建了一个普通的顶级窗口。
- 我使用 WS_EX_LAYERED 和 UpdateLayeredWindow/SetLayeredWindowAttributes 创建了一个分层窗口(我都试过了)。分层窗口位于 1 中创建的窗口之上。分层窗口不是子窗口。
- 然后我通过 COM DoDragDrop 函数开始拖放。在 IDropSource::QueryContinueDrag 中,我调用 ImageList_BeginDrag、ImageList_DragMove 等。
问题是,COM 显示的拖动图像(它是图像列表中的图像)显示在分层窗口下方而不是在其顶部。光标显示在分层窗口的顶部(如预期的那样)。从下到上,我得到的分层是:
- 主窗口(底部)
- COM拖动图像
- 分层窗口
- 光标(上)
它应该是:
- 主窗口(底部)
- 分层窗口
- COM拖动图像
- 光标(上)
我已经应用了 KB943326“重叠的分层窗口在 Windows Server 2003 或 Windows XP 中没有以正确的顺序显示”(“ http://support.microsoft.com/kb/943326 ”),但没有区别。
我正在运行 XP SP2。
任何建议表示赞赏,因为我已经没有想法了......
谢谢,苏绿