飞信来消息时在桌面的右下角弹出消息提示窗口问题,如果有两个消息同时到达,怎么实现右下角的消息提示小窗口一个在另一个的上面而不重叠,并应用于三个以及三个以上的消息提示窗口

解决方案 »

  1.   

    每个窗口大小都是固定的。只要你知道有几个窗口在显示,用SetWindowPos或者MoveWindow不就可以设定每个窗口的显示位置了么
      

  2.   

    注意:窗口是从CWnd类继承的不是从CDialog继承
      

  3.   

    同意LS的。获得第一个窗口的顶部位置,同时它也是第二个窗口的底部位置,再用MoveWindow..
      

  4.   

     同意楼上几位的做法
    但是在程序中最好维护一组当前显示窗口位置的链表或数组,
    然后使用SetWindowPos或者MoveWindow设置窗口的位置
      

  5.   

    自己每显示一个对话框就记录一下对应的位置,这样有新的,就知道把新的位置MoveWindow等移动到对应的位置,当窗口关闭,就清除这个记录,用一个List等来维护
      

  6.   

    new 出来的动态消息框,记录m_hWnd到队列中,该消息框关闭后自动删除 delete this;需要时先查队列中的消息框有多少个,是不是还存在 ::IsWidnows(m_hWndMessage1);
    如果不存在了就从队列中删除
    存在的话则获取位置new 一个消息框记录入队列中,设置为计算出的新位置OK,这是我的解决方案