这几个Form是在另外的Active Dll中,在主程序的Form上放一个PictureBox 
用SetParent把这几个Form调到主程序的PictureBox上,在PictureBox上的后面的窗口怎样激活到前面来?
找了很久,还是不懂得弄,看看有没有高手,先谢过。

解决方案 »

  1.   

    你是不是把PictureBox 所在Form搞成了顶级窗口?
    还有你的SetParent是怎么写的?把这个用法写出来看一下。
      

  2.   

    实际上不需要用SetParent,当Active Dll中需要显示某个窗体的时候,只须用setwindowpos将其置为顶级窗口就可以了。这样是不是更简单些!
      

  3.   

    是顶级窗口还是子窗口?顶级窗口用SetForegroundWindow等方法;子窗口会互相覆盖,可以把其它窗口都隐藏起来。
    另外,Parent最好在创建的时候指定,窗口后再修改会有一些问题隐患。
      

  4.   

    我回答你
    分全给我吧。。
    我想你要的应该是想把picturebox里面的窗口标题栏显示为激活状态,而非是那种无焦点状态在picturebox的父窗口代码里面加上这几行
    Private Sub Form_GotFocus()
    SendMessage 要激活的窗口句柄, WM_NCACTIVATE, 1, 0
    End SubPrivate Sub Form_LostFocus()
    SendMessage 要激活的窗口句柄, WM_NCACTIVATE, 0, 0
    End Sub这代码是不完美的 因为vb的 got\lostfocus事件检测不到不同进程之间的窗口切换
      

  5.   

    用 setwindowpos 指定窗口句柄, 0,..............