设计多个窗口的程序,不清楚怎样能将窗口的顺序排好。设计流程如下:
1、加载窗口1;
2、加载窗口2,希望窗口2始终保持在窗口1之上;
3、加载窗口3,希望窗口3始终在窗口2之上,而窗口2始终在窗口1之上,但三个窗口的任何窗口都能获得焦点。
用SetWindowPos函数怎么实现上述的功能?谢谢!另外:用SetWindowPos函数后,指定的窗口会位于桌面上所有的窗口之前,不管是不是自己程序的窗口。请问能不能让顶端的窗口只是在自己程序的窗口中在最前,当别的程序的窗口获得焦点时,依然可以覆盖它。

解决方案 »

  1.   

    http://download.csdn.net/source/1604378
      

  2.   

    form1.showform2.show , form1form3.show ,form23个窗口依次按照以上3个方法显示出来, 这样就实现了你想要的效果lz 没有说强制要求一定要 setwindowpos 实现吧? 如果非要setwindowpos实现,
    而且使用vb的窗口,那极容易出问题,而且一个setwindowpos实现不了的
    放弃那个永远顶端的想法吧, 想实现的话, 太麻烦了
      

  3.   

    VB 不好好学就想用 API。
    请先确认你需要的功能 VB 是否已实现。
      

  4.   

    应该用SetParent而不是SetWindowPos'-----------Module1 code---------------
    Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long'----------form1 code----------------------
    Private Sub Form_Load()
      Form2.Show
      Form2.Move 0, 0
      SetParent Form2.hWnd, Form1.hWnd
    End Sub'---------form2 code-----------------------
    Private Sub Form_Load()
      Form3.Show
      Form3.Move 0, 0
      SetParent Form3.hWnd, Form2.hWnd
    End Sub