相信,人多人都对WS_CLIPCHILDREN和WS_CLIPSIBLINGS具体的属性不是很理解,尤其是对WS_CLIPSIBLINGS的理解,通过网络上查资料,看了四五次,每次看懂了但是下次遇到又忘记了,让人很揪心,但是经过几次的实际应用,我终于明白了他们的含义。
下面以我在开发实际应用中正确使用来通俗易懂的来说明:
(1)WS_CLIPCHILDREN
其含义就是,父窗口不对子窗口区域进行绘制。默认情况下父窗口会对子窗口背景是进行绘制的,但是如果父窗口设置了WS_CLIPCHILDREN属性,父亲窗口不在对子窗口背景绘制,效果如图:
这是没使用之前效果;使用之后效果:
文字Hello还是在,但是背景呢??原来父亲窗口不帮子窗口绘制了,需要子窗口自己绘制.
(2)WS_CLIPSIBLINGS
这个属性的含义需要特别注意,它的意思就是剪辑兄弟窗口,也就是不对兄弟窗口进行绘制,为什么会绘制兄弟窗口?因为两个窗口可能会重叠!!!如果父亲窗口是overlapped的重叠窗口,那么兄弟窗口必然会涉及到覆盖剪辑问题。如果某子窗口使用了ws_clipsiblings属性,那么被该窗口覆盖的兄弟窗口区域本窗口就不在进行绘制了,就是说本窗口不绘制在其下面还有兄弟窗口的那部分窗口,效果就是在其下面的兄弟窗口即使z次序小于本窗口【在本窗口的下面的兄弟窗口】,如果本窗口设置了clipsublings那么下面兄弟窗口就可以显示出来了【没有绘制该部分使得下面的遮挡部分兄弟显示出来了】。