VB中用SetParent函数让应用程序在指定窗体中运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中用SetParent函数让应用程序在指定窗体中运行相关的知识,希望对你有一定的参考价值。

请教下如何用这个函数让一个应用程序在我指定的窗体中运行请给源码

VB声明
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
说明
指定一个窗口的新父(在vb里使用:利用这个函数,vb可以多种形式支持子窗口。例如,可将控件从一个容器移至窗体中的另一个。用这个函数在窗体间移动控件是相当冒险的,但却不失为一个有效的办法。如真的这样做,请在关闭任何一个窗体之前,注意用SetParent将控件的父设回原来的那个)
返回值
Long,前一个父窗口的句柄
参数表
参数 类型及说明
hWndChild Long,子窗口的句柄
hWndNewParent Long,hWndChild的新父
注解
可用这个函数在运行期将vb控件置入容器控件内部(比如将一个按钮设成图象或窗体控件的子窗口),或者将控件从一个容器控件移至另一个。控件移至另一个父后,它的位置将由新父的坐标系统决定。这样一来,有必要重新规定控件的位置,使其能在目标位置显示出来
参考技术A Private Sub Command1_Click()
Dim hwnd As Long, hWndNewParent As Long ‘定义
Shell "程序路径", vbNormalFocus ‘ 以QQ2013为例
sleep 500 ‘打开程序后稍微延迟一下

hwnd = FindWindow(vbNullString, "QQ2013")’获取句柄
hWndNewParent = (Me.hwnd)
SetParent hwnd, hWndNewParent '设置hWndNewParent 为 hwnd 的父窗口
End Sub

完事,很简单。声明自己API找一下就OK。万一不懂在问我。

以上是关于VB中用SetParent函数让应用程序在指定窗体中运行的主要内容,如果未能解决你的问题,请参考以下文章

SetParent 装载的窗体 会保留在进程中 如果程序运行中出错,包括更新,查询.... 出错, 该如何卸载窗体

关于WinForm 中 调用SetParent这个API的问题

vb6中如何实现类似MDI子窗体的窗体

vb如何获得一个正在运行程序的窗体名称

delphi获取指定窗体句柄,该怎么处理

怎么在后台执行命令行并返回值?(编程环境vb6.0,不用.net)不要弹出cmd窗口,焦点还在原来的窗体上。