我在我的应用程序中使用TabControl几个标签。我在选项卡中隐藏子元素时遇到问题。我通常用
隐藏元素ShowWindow(hElementName, SW_HIDE))
并用
显示它们ShowWindow(hElementName, SW_SHOW))
但由于某种原因,它不适用于位于标签内的任何元素。
我试过调用
RedrawWindow(hElementName, NULL, NULL, RDW_INVALIDATE);
RedrawWindow(hTabElementName, NULL, NULL, RDW_INVALIDATE);
RedrawWindow(hTabControlElementName, NULL, NULL, RDW_INVALIDATE);
但这并没有改变这种行为。关于我在这里做错了什么的建议?
更新:
感谢你的评论,peterchen和Jonathan Potter。我真的很感谢你对问题的帮助。我仍然遇到同样的问题。
到目前为止我做了什么:
我会遇到同样的问题。
我做了一个观察:
我的应用程序具有最小化到托盘然后还原的功能。我通过隐藏主应用程序窗口来做到这一点。所以这就是我注意到的:如果选项卡控件上的元素应该被隐藏(并且它不是),并且我最小化然后恢复应用程序,则在重绘整个窗口之后,元素将按预期隐藏。这就是为什么我100%确定我在正确的元素上调用ShowWindow
并且我不会在代码中的其他位置显示它。它与没有重新绘制的元素有关,但我无法理解究竟是什么问题。