本人发现QQ2008版本界面上的一个必现bug,重现步骤如下:
1,将QQ2008系统设置中的“主窗口保持前端显示”选项前面的勾去掉
2.打开IE或者其他窗口,然后最大化该窗口,为方便叙述,将其称为窗口A
3.将QQ2008主界面(窗口B)显示在窗口A上
4.打开任意一个聊天窗口(窗口C),将其拉到屏幕中不与窗口B相交的地方
5.最小化窗口C期望结果:
窗口B依然保持在屏幕上显示
实际结果:
窗口B不见了(实际上是跑到窗口A后面去了)由于本人手头上开发的项目和QQ有些类似,发现了这个问题,结果用QQ2008来测试下,发现他也有这个问题,不明白为什么QQ2008主窗口的Z-order会被改掉,我用spy++跟踪的时候发现,最小化聊天窗口的时候,QQ2008主界面并没有收到消息,请高手指点迷津,100分奉上,不够另外开贴(这个bug在QQ2009中已经解了)

解决方案 »

  1.   

    我没有QQ,没法试验。看一下你的子窗口具有哪些风格和扩展风格,子窗口的parent是不是主窗口,还有这两个窗口是否在同一线程中?
      

  2.   

    谢谢cnzdgs,我的子窗口的parent是桌面,这两个窗口处于同一线程,我的子窗口用的是默认的窗口风格,不过我的主窗口带有WS_EX_TOOLWINDOW风格,没有标题栏
      

  3.   

    没有标题栏,而且是主窗口,为何还要加WS_EX_TOOLWINDOW风格?
      

  4.   

    QQ 是不是在窗口active或者deactive的时候调了 SetWindowPos,设个断点跟下
      

  5.   

    问题已经搞定,这个是窗口风格的问题,将WS_EX_TOOLWINDOW属性去掉就不会出现这个问题了,谢谢大家!(PS:Microsoft搞这么多机关,累不累啊),
    另外,去掉WS_EX_TOOLWINDOW风格后,窗口会在任务栏显示的问题也解决了,具体参见我的博客,http://blog.csdn.net/hurricane511.