把几个Form用SetParent到程序中的PictureBox,如何把后面的Form激活到前面?
这几个Form是在另外的Active Dll中,在主程序的Form上放一个PictureBox用SetParent把这几个Form调到主程序的PictureBox上,在PictureBox上的后面的窗口怎样激活到前面来?
找了很久,还是不懂得弄,看看有没有高手,先谢过。 --------------------编程问答-------------------- 你是不是把PictureBox 所在Form搞成了顶级窗口?
还有你的SetParent是怎么写的?把这个用法写出来看一下。 --------------------编程问答-------------------- 实际上不需要用SetParent,当Active Dll中需要显示某个窗体的时候,只须用setwindowpos将其置为顶级窗口就可以了。这样是不是更简单些! --------------------编程问答-------------------- vb frm.Zorder属性 --------------------编程问答-------------------- 是顶级窗口还是子窗口?顶级窗口用SetForegroundWindow等方法;子窗口会互相覆盖,可以把其它窗口都隐藏起来。
另外,Parent最好在创建的时候指定,窗口后再修改会有一些问题隐患。 --------------------编程问答-------------------- 发下你的代码 --------------------编程问答-------------------- 我回答你。。。
分全给我吧。。。。。
我想你要的应该是想把picturebox里面的窗口标题栏显示为激活状态,而非是那种无焦点状态
在picturebox的父窗口代码里面加上这几行
Private Sub Form_GotFocus()
SendMessage 要激活的窗口句柄, WM_NCACTIVATE, 1, 0
End Sub
Private Sub Form_LostFocus()
SendMessage 要激活的窗口句柄, WM_NCACTIVATE, 0, 0
End Sub
这代码是不完美的。。。 因为vb的 got\lostfocus事件检测不到不同进程之间的窗口切换 --------------------编程问答-------------------- 用 setwindowpos 指定窗口句柄, 0,.............. --------------------编程问答--------------------
补充:VB , API