我正在编写一个工具栏样式的控件,并使用ThemeServices单元绘制工具栏所需的背景。像这样:避免在嵌套控件上绘画
ThemeServices.DrawElement(Canvas.Handle,
ThemeServices.GetElementDetails(trRebarRoot), ARect);
然后我将子控件放到工具栏上,然后瞧 - 即时工具栏。除了每隔一段时间我都会注意到嵌套(子)控件不会重新绘制。所以我的控件描绘了它的背景,并且在您将鼠标移动到其上方之前,子控件会消失。
一些编辑控件显示其客户区(无边框),其中一些完全消失。
这种情况主要发生在我从工具栏上的另一个应用程序放置窗口并将其移开时。
我一直认为这必须很容易治愈,也许我不知道如何防止油漆消息到达子控件,或者失去一个覆盖,但我一直无法弄清楚。
我发现了很多东西(请参阅我自己的答案),但是您的解释更好。谢谢! – 2010-03-25 13:38:35