在一个基于对话框的应用程序中,创建了一个子窗口,如何设置该子窗口的属性,或是在那些消息映射中应该处理,要使得该子窗口始终位于对话框的上面呢?
该子窗口和对话框均有TOPMOST风格,子窗口派生于CWnd。另外,我将该对话框设置为带园角的矩形框,怎么一改变该对话框的大小,它的左上角就变成方的了?

解决方案 »

  1.   

    也可以启动后用SetForegroundWindow调整
      

  2.   

    不行!
    按说我已经将之设置为TopMost了,每次SetFocus()的时候也都把它提到最前面来了,
    可是为什么还是不能达到预期效果呢?检验的方法是:
    将它设为全屏幕显示方式,然后按下WinMenu键,在然后,用鼠标激活该窗口,
    这时候,该子窗口就被放到后面去了。
      

  3.   

    1. 创建时加上WS_VISIBLE | WS_CHILD | WS_OVERLAPPED属性应当可以使你创建的窗口在当前对话框中一直是可视的。
    2. 楼主将对话框设置为带园角的矩形框,是用的SetWindowRgn吗?如果不是请用!
      

  4.   

    謝謝!圆角窗口问题已经解决了,使我自己使用的时候出了一点问题,
    我是使用SetWindowRgn函数的。
      

  5.   

    实际上,我是使用了这些属性的,可是,结果还是有问题:
    我在该窗口上点击右键,出来菜单,然后,用鼠标激活其他的应用程序,
    因为该窗体具有TopMost属性,所以,他仍然处于屏幕的最上方,
    可以看到,窗口中除了刚才出现菜单的地方显示正确(为窗口的既设背景)外,
    其余部分显示为对话框的背景了。
      

  6.   

    子窗口不用具备TopMost属性!
    你置了TopMost就肯定会在最顶层,除非另外一个TopMost 窗口被激活!