关于控件窗口重叠时的显示问题(三个问题,一个20分)
关于控件窗口重叠时的显示问题(三个问题,一个20分)
1)动态创建的控件如何设置谁显示在前,谁显示在后?
静态创建的控件可以按ctrl+d调整显示先后(也就是调整谁覆盖谁问题),那么我用动态创建(即使用Create创建的)的控件如何调整呢?以及静态创建的控件和动态创建的控件之间的显示先后又该怎么调整呢?
2)我们使用ctrl+d调整后,深层变化是什么吗?
我试了一下,使用ctrl+d调整显示先后以后,控件在.rc文件(对话框资源)中的顺序发生变化。造成了显示先后的改变深层原因是什么呢?是消息队列的次序改变?请高手回答。最好有代码解释。推荐一下这个方面问题材料也行。
3)我的实际问题:
我创建的MFC单文档程序,并用CSplitterWnd在CMainFrame::OnCreateClient创建了分割窗口,左右两个,其中右面的窗口是CFormView。在这个view中有三类控件:静态创建的tab控件,静态创建listctrl控件,动态创建的listctrl控件。三个控件重叠。问题是:
我在用鼠标调整分割窗口(注意:是调整“分割窗口”,也就是拖动两个窗口间的分割线。不是调整整个程序的大小)时,动态创建的listctrl控件显示不正确。现象如下:
如果动态创建的listctrl控件没有item被选中(或不是焦点)时,拖动时显示没有问题;但当动态创建的listctrl控件有item被选中(或是焦点)时,显示出现问题(此时似乎被tab控件覆盖了,但点击动态创建的listctrl控件的item,还是能选中的)。
这是什么原因?请解释。
其实静态创建的listctrl控件控件也有类似问题,但是通过ctrl+d调整后可以解决。
三个问题其实本质是同一个问题。
另外:谁能推荐一下外国的能回答编程类问题的英文网站?如果没人能回答上面三个问题,这个也能给分,免得浪费分数。要人气旺的好网站。