问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB中怎么让别的应用程序作为自己的一个子窗口

发布网友 发布时间:2023-07-17 02:24

我来回答

2个回答

热心网友 时间:2024-12-06 05:24

新建一个midi子窗体,将其linktopci属性设置为:MDIForm1并添加一个CommonDialog空间,命名为CommonDialog1在菜单编辑器中输入以下内容: 标题 名称 打开程序(&O) mnuOpen '顶级菜单栏 记事本(&N) mnuNotepad '一级菜单栏 打开(&O)... mnuOpenNotepad '二级菜单栏 释放(&R)... mnuResNotepad '二级菜单栏 计算器(&C) mnuCalc '一级菜单栏 打开(&O)... mnuOpenCalc '二级菜单栏 释放(&R)... mnuResCalc '二级菜单栏 QQ QQQQ '一级菜单栏 浏览(&V)... view '一级菜单栏 - mnuSep1 '分隔符退出(&Q) mnuClose '一级菜单栏 输入如下代码:Option ExplicitPrivate Notepad_OldParent&
Private Calc_OldParent&
Private Notepad_Hwnd&
Private Calc_Hwnd&
Private Sub mnuClose_Click()
Unload Me
End SubPrivate Sub mnuOpenCalc_Click()
Dim pid As Long
Dim buf As String
Dim buf_len As Long
Dim styles As Long pid = Shell("calc.exe", vbNormalFocus)
If pid = 0 Then
MsgBox "程序启动出现未知错误!"
Exit Sub
End If Calc_Hwnd& = InstanceToWnd(pid) Calc_OldParent& = SetParent(Calc_Hwnd&, Me.hwnd) mnuOpenCalc.Enabled = False
mnuResCalc.Enabled = True
End SubPrivate Sub mnuOpenNotepad_Click()
Dim pid As Long
Dim buf As String
Dim buf_len As Long
Dim styles As Long pid = Shell("notepad.exe", vbNormalFocus)
If pid = 0 Then
MsgBox "程序启动出现未知错误!"
Exit Sub
End If Notepad_Hwnd& = InstanceToWnd(pid) Notepad_OldParent& = SetParent(Notepad_Hwnd&, Me.hwnd) mnuOpenNotepad.Enabled = False
mnuResNotepad.Enabled = True
End Sub Private Sub mnuResCalc_Click()
SetParent Calc_Hwnd&, Calc_OldParent& mnuOpenCalc.Enabled = True
mnuResCalc.Enabled = False
End SubPrivate Sub mnuResNotepad_Click()
SetParent Notepad_Hwnd&, Notepad_OldParent& mnuOpenNotepad.Enabled = True
mnuResNotepad.Enabled = False
End SubPrivate Sub QQQQ_Click()
Dim pid As Long
Dim buf As String
Dim buf_len As Long
Dim styles As Long
CommonDialog1.Filter = "应用程序|*.exe"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then Exit Sub
pid = Shell(CommonDialog1.FileName & " /START QQUIN: PWDHASH:DO/k3iTCiQbiCh8cv7rkpA== /STAT:40", vbNormalFocus)
If pid = 0 Then
MsgBox "程序启动出现未知错误!"
Exit Sub
End If Notepad_Hwnd& = InstanceToWnd(pid) Notepad_OldParent& = SetParent(Notepad_Hwnd&, Me.hwnd)End SubPrivate Sub view_Click()
Dim pid As Long
Dim buf As String
Dim buf_len As Long
Dim styles As Long
CommonDialog1.Filter = "应用程序|*.exe"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = "" Then Exit Sub
pid = Shell(CommonDialog1.FileName, vbNormalFocus)
If pid = 0 Then
MsgBox "程序启动出现未知错误!"
Exit Sub
End If Notepad_Hwnd& = InstanceToWnd(pid) Notepad_OldParent& = SetParent(Notepad_Hwnd&, Me.hwnd)End Sub
新建一个模块,输入如下代码:Option ExplicitPublic Const GW_HWNDNEXT = 2Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As LongFunction InstanceToWnd(ByVal target_pid As Long) As Long
Dim test_hwnd As Long
Dim test_pid As Long
Dim test_thread_id As Long test_hwnd = FindWindow(ByVal 0&, ByVal 0&) Do While test_hwnd <> 0 If GetParent(test_hwnd) = 0 Then test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid) If test_pid = target_pid Then InstanceToWnd = test_hwnd
Exit Do
End If
End If test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT)
Loop
End Function

热心网友 时间:2024-12-06 05:24

先把自己的程序窗口设置成MDI 然后通过自己的程序窗口调用其它的程序 这样 你的程序就成了主窗口了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
build腰带迷失漂流瓶几元 BANDAI万代假面骑士Build 飞电01驱动器-适用对象 BANDAI 万代 假面骑士Build 飞电01驱动器-详细介绍 纸胶带能做什么手工 黑死病是哪个时期 黑死病和伽利略谁的时代更早 双十二有购物津贴吗 双12购物津贴领取方法和使用规则 双十二满减是多少?满减有什么规则? 双十二满减规则是什么?详细内容介绍 双12淘宝如何满减?规则是什么? 湘潭西到长沙月湖大市场怎么走 谁能给个用VB做计算器的思路~~~ 凤亭路口到月湖大市场怎么走 请问我在开福区月湖大市场要去长沙火车站 ,有直达的公交车吗 成都本科线多少分 单片机程序 两个数的相加 从长沙火车南站到月湖公园怎么坐公交车,最快需要多久 长沙汽车南站坐几路公交车到月湖大市场 月湖大市场到火车南站怎么走 C语言中如何实现,在1到6之间产生随机数并存入数组中,数组一共有12个数 ... 湖南月湖大市场离高铁南站多少路,怎么走啊 狗狗生嵬大小不同怎么回事。只能活两三天‘ LGSU660是否支持FM收音机 pl660收音机短波怎么找台湾频道 做紫砂的有个叫什么强的 贫者小人是什么意思 问德生660收音机在福州市短波好不好用 河南大学:学校里都有哪些银行的ATM机? 南瓜能不能和香瓜一起吃? 嘎咯羊是什么植物? you,reIate。翻译中文 胳膊被人咬了一口为什么总是麻木 上茬香瓜下茬可以种南瓜吗 被女朋友在左小臂尺骨侧咬了一口,都两个半月了仍然感觉左手拇指和食指... 昨天咬了一口老公的胳膊,他说现在一直是麻的,怎么办 魔兽争霸3切出去后进不去怎么办a 胳膊被女朋友咬一口,手指变得有点麻木了 魔兽争霸一开始可以玩,我就来回切换了下,就出现进不去的情况,重启也不... 被咬手腕的筋,手麻一直不好怎么办? 玩冰封王座为什么我切出来再切不进去。 我的手被老婆咬了一口手发麻了,这到底是为什么? ...不太会用智能手机查询公交信息,如何做到让老人搭公交更方便?_百度... 为什么我开了魔兽争霸切出来就切不进去了 手腕被女友咬了一口,好像咬到血管了,手掌一直发麻,还肿了,是怎么回事啊... 手腕被咬了一口,手背发麻。 为什么我玩魔兽争霸DOTA切出去后 就切不进去了呢 ...总是会无法切换界面 就是最小化后不能进入游戏 求指点~~~ 小龙人的妈妈叫什么名字 我玩魔兽争霸3冰封王座,有时候切出去就没事,有30%的几率切进去的时候黑... 钢号为GHGG的钢筋隶属于哪个厂家