转载请保持文章的完整性并显要地注明出处

本文链接:http://blog.csdn.net/wlsgzl/article/details/38042301

===========================================================================

先上图,无图无真相。

很明显的,左面和右面的遮挡效果不一样。但是,我可以负责任的说,他们的属性都是一样的。

=====================================================================================

发现这个问题很偶然。

一开始我在写一个小例子,界面显示效果是右边的样子,没有多想,然后写了一堆逻辑操作的代码(与界面无关)。

后来打算用别的方法实现下逻辑,又写了一个小例子,结果界面显示效果却是左面的样子。

当我看到界面效果不一样时,当时我就不乐意了,因为我的属性设置都是一样的呀!

于是我又仔细对照了一遍两者的属性,发现他们确实是一样的。

后来……你们不会想知道过程的……我一遍又一遍的重复拖放控件、设置属性、查看效果的过程,终于让我发现了,原来是拖放的顺序导致的。

于是,在这里做个结论,因为毕竟有时候,右边的效果是我们想要的,比方说做取景框的时候。

1、实现左边的效果:

先拖放Group Box控件,后拖放Picture控件

2、实现右边的效果:

先拖放Picture控件,后拖放Group Box控件

---------------------------------------------------------------------------------------------------------------

Picture控件对于这两种顺序的属性设置是一样的:


==================================================================================

至于属性相同但是效果不同的原因,我想,我大致猜测下:

拖放顺序不同导致了写入*.rc文件里时资源定义的顺序不同。当创建界面时,读取的资源顺序不同,导致了绘制时的覆盖。

当然到底是什么原因,这恐怕已经超出了我现有的知识范围,可能看PE文件的相关内容或许有所帮助。

不过这已经不重要了。









--------------------------------穿山甲到底说了什么?------------------------------------