3

我有一个 MDI 应用程序。我想在子窗口的非客户端标题栏中添加一个图标,允许窗口与父 MDI 容器分开浮动,允许用户获取子窗口并在 MDI 之外将它们任意放置在桌面周围窗户。

我已经看到它完成了,所以我知道这是可能的,但我很难弄清楚如何完成它。

我正在使用 WTL(Windows 模板库),但是我使用 MFC 和 Win32 来标记它,因为我相信基本原理是相同的,而且人们可能会了解各种 Windows API。

4

1 回答 1

4

我这样做已经有一段时间了,但我认为调用SetParent (your_hwnd, 0)让窗口从它的父窗口逃脱就足够了。

消息传递会发生一些变化,因此您可能必须将一些消息从主窗口重定向到以前的子窗口。如果您希望 MDI 应用程序的主菜单与前孩子一起使用,这很可能是必需的。

如果您遇到绘图问题,您可能必须使用SetWindowLong更改窗口样式。

顺便说一句,使用 WTL 的好选择——在我看来,这是一个非常好的 API 抽象,没有任何花里胡哨。

于 2009-03-20T14:34:45.477 回答