环境: Visual Studio 2008、Visual Studio Feature Pack、MFC Dialog App、Windows XP、New Common Controls。
我遇到了恰好位于选项卡控件上的列表控件的问题。
要重现该问题,只需创建一个基于对话框的应用程序。在该对话框上放置一个选项卡控件,然后在该选项卡控件上放置一个列表控件。您不需要向项目中添加任何代码。只需构建并运行。将焦点设置到列表视图,然后最小化对话框或将另一个窗口放在它前面。
现在将对话框带回前台,列表将无法正确绘制。
我尝试过的一件事是处理列表控件的设置焦点事件,但留下了一个空的方法体,即......
void CMyListControl::OnSetFocus(CWnd* window)
{
// Default();
}
然后重绘问题就消失了,但是现在您无法选择列表中的项目。取消注释对 Default 的调用会使问题再次出现。
如果我将列表从选项卡上移开,问题就会消失。如果我将焦点设置到选项卡或对话框上的另一个控件,问题就会消失。这是一个奇怪的问题。
事实上,如果您仔细观察,您可以看到列表绘制本身,然后被选项卡控件遮挡。