我有一个MDI应用程序。我想在子窗口的非客户端标题栏中添加一个图标,允许窗口与父MDI容器分开浮动,允许用户将子窗口任意放置在MDI之外的桌面上窗口。
我已经看过它,所以我知道这是可能的,但我很难搞清楚如何实现它。
我正在使用WTL(Windows模板库),但是我用MFC和Win32标记它,因为我相信基本原理是相同的,人们可能对Windows API的各个方面有所了解。
答案 0 :(得分:4)
我做了这个已经有一段时间了,但我认为只需调用 SetParent(your_hwnd,0)就可以让窗口从它的父节点中逃脱。
消息传递会稍微改变一下,因此您可能需要将一些消息从主窗口重定向到前一个子窗口。如果您希望MDI应用程序的主菜单与前孩子一起工作,则很可能需要这样做。
如果您遇到绘图问题,可能需要使用 SetWindowLong 更改窗口样式。
使用WTL btw的好选择 - 在我的意见中,一个非常好的API抽象,没有任何花里胡哨。