0

我正在开发一个带有选项卡控件的应用程序。单击选项卡中的图标后,将打开一个弹出窗口,并将选项卡的内容移至弹出窗口。

我所做的很简单 - 将选项卡中每个控件的父级更改为弹出窗口(使用 SetParent())。除了列表视图控件(虚拟列表视图)之外,一切都很好。

更改父级后,列表视图不再发送 WM_NOTIFY 通知。

我还使用非虚拟列表视图对其进行了测试,并且发生了同样的情况。

我在谷歌上搜索过,一无所获,所以任何想法都将不胜感激。

更新

更改父级后,列表视图继续向其先前的父级发送 WM_NOTIFY 通知。这是常见控件中的错误吗?

4

1 回答 1

2

许多通用控件在创建时会缓存它们的父控件。除了首先使用正确的父级创建它们之外,您实际上无能为力。

一种解决方法是注册一个虚拟窗口类,它只负责托管有问题的公共控件,并将消息转发回来并转发给它。然后,您可以重新设置该窗口而不是控件本身。

于 2013-03-22T11:23:42.497 回答