时,我会尽量解释我的问题尽我所能,窗户被涂使用分层窗口
我创建一个在C分层的窗口++(使用的是WindowsXP),直到我将所有工作正常,我创建窗口附近的Windows开始按钮,然后当我按下Windows任务栏的星形按钮,并再次关闭它时,我的分层窗口下面的所有窗口都没有被绘制(仅在窗口弹出我窗口的区域)。
我创建的窗口是这样的:
的CWnd :: CreateEx(WS_EX_TOOLWINDOW | WS_EX_LAYERED, AfxRegisterWndClass(0), lpstr_name,WS_POPUP,0,0,0,0, pc_parent-> GetSafeHwnd(),0);
...
当我创建这个风格问题ocurrs窗口,但如果我与扩展样式WS_EX_TRANSPARENT创建和所有其他人不发生任何更多的问题。如果不是WS_POPUP窗口是WS_CHILD或WS_OVERLAPPED那么这也不会发生...
任何人都可以请解释为什么当我创建一个WS_EX_LAYERED样式的WS_POPUP窗口下面的所有窗口都没有更新,如果我添加风格WS_EX_TRANSPARENT这工作正常。
注意:为什么我不使用WS_EX_TRANSPARENT风格,如果它工作正常?如果我使用它,然后我的窗口不能拖动,我需要做的吧:)
更新时间: alt text http://img17.imageshack.us/img17/586/clipboard01il.jpg
上面的图片是为了更好地描述所发生的事情: 图像的第一部分你可以看到我的层叠窗口,下面是vs,在第二个img中,我按下开始按钮,然后在最后一个图像中,我已经将分层窗口拖到右侧,你可以看到vs窗口没有更新受影响的区域。 请注意,直到现在这种情况只发生在启动窗口?!与其他Windows它不会发生!?...
感谢
是的,当然,但我怎么做到这一点。我希望所有窗口下面的窗口应该被通知绘画更新,我不希望我的应用程序是将绘制窗口下方的应用程序,我期望系统会发送某种消息,以便让它知道下面的窗口必须重绘是自己的内容。 我觉得你不明白我的问题,我只想知道女巫风格或扩展样式允许这种情况发生。 – Nuno 2010-05-17 14:07:23
@Nuno:为什么基础窗口重绘?他们之上有一个窗口!无论他们画的是什么,当最顶层的窗口重新绘制时,都会被吹走。 – 2010-05-17 14:17:44
正确的理解,但我能做些什么来避免这种情况? (我更新了问题并添加了一个图像,就像你看到的那样,底层窗口需要重绘或不重视!)注意,如果我添加了WS_EX_TRANSPARENT扩展样式,这将不会发生......这是我需要的,但是这种风格我不能拖动我的窗口,因为它会被点击 – Nuno 2010-05-17 14:28:36