Win32 C++:父控件绘制在子控件之上

Win32 C++ : Parent controls is drawn on top of children

我目前正在使用自制的 Win32 包装器 windows 和控件编写 GUI 应用程序。我做了一个自定义 class,它应该充当子控件的容器。问题是我的自定义控件绘制在子控件之上,这使得它们不可见。

我已将 WS_CLIPCHILDREN 标志添加到我的容器中,但问题仍然存在。

正如 Jeromy Adofo 指出的那样,问题与 Z-ordering 有关。

我使用了 SetWindowPos()(MSDN 页面 here)并像这样传递了前两个参数:SetWindowPos(childHwnd, parentHwnd, ...); 并且有效。

还有一件事,SetWindowPos() 要求 child 的位置和大小。如果已经为您设置了这些值,并且您不想再次传递它们,请使用标志组合 SWP_NOMOVE | SWP_NOSIZE 并将位置和大小参数设置为零。