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
并将位置和大小参数设置为零。
我目前正在使用自制的 Win32 包装器 windows 和控件编写 GUI 应用程序。我做了一个自定义 class,它应该充当子控件的容器。问题是我的自定义控件绘制在子控件之上,这使得它们不可见。
我已将 WS_CLIPCHILDREN
标志添加到我的容器中,但问题仍然存在。
正如 Jeromy Adofo 指出的那样,问题与 Z-ordering 有关。
我使用了 SetWindowPos()
(MSDN 页面 here)并像这样传递了前两个参数:SetWindowPos(childHwnd, parentHwnd, ...);
并且有效。
还有一件事,SetWindowPos()
要求 child 的位置和大小。如果已经为您设置了这些值,并且您不想再次传递它们,请使用标志组合 SWP_NOMOVE | SWP_NOSIZE
并将位置和大小参数设置为零。