我正在编写一个工具栏样式的控件,并使用 ThemeServices 单元来绘制工具栏所需的背景。像这样:
ThemeServices.DrawElement(Canvas.Handle,
ThemeServices.GetElementDetails(trRebarRoot), ARect);
然后我将子控件放到工具栏上,瞧——即时工具栏。除了时不时地我注意到嵌套(子)控件也不会重新绘制。所以我的控件绘制了它的背景,并且子控件消失了,直到你将鼠标移到它们上面。
一些编辑控件显示它们的客户区(无边框),其中一些完全消失了。
这主要发生在我将另一个应用程序的窗口放在工具栏上并将其移开时。
我一直认为这必须很容易治愈,也许我以某种方式阻止了绘画消息到达子控件,或者错过了覆盖但我一直无法弄清楚。