创建类似抽屉的窗口

时间:2011-02-20 01:48:31

标签: c++ winapi controls

如何创建一个附加到父窗口一侧的窗口,就像抽屉一样打开? 这样你就不会失去父窗口的焦点。

1 个答案:

答案 0 :(得分:0)

您基本上需要做的是创建一个代表您的抽屉的自定义控件。我不确定这是否是你熟悉的东西,但如果没有,有很多教程,例如this one

我想你要做的是将你的控制部分指定为“手柄”,如果点击“打开”抽屉。您可以通过在控件的窗口过程中处理WM_LBUTTONDOWN / WM_LBUTTONUP消息,并在检测到点击时将其大小从其封闭大小更改为其开放大小来实现此目的。我之前没有使用它,但您可以使用AnimateWindow简单地实现动画。

您可能还希望让控件在打开或关闭时向其父窗口发送通知,以便您的父窗口可以根据需要重新调整大小或移动其他控件。您可以通过使用您自己的通知代码或使用您自己的自定义消息向父窗口发送WM_NOTIFY消息来实现此目的。然后,您的父窗口必须在其窗口过程中响应此类消息。

据我所知,没有具体的例子可以解决您的确切要求,所以我可能目前无法提供更多信息。如果还有其他任何特别需要了解的事情,请不要犹豫。