none
请问,如何在vb10中嵌套窗口,不是简单的继承,是有点像虚拟桌面 RRS feed

  • 问题

  • 我是想把一个编译好的程序(可以是各种语言),在我的窗口中显示,并且能操作,能回输。不是用继承的方法。

    有点像虚拟机(但不是,不需要模拟硬件与资源),准确的说是虚拟桌面,就有点像在vb中用控件在窗口中浏览web(但我不是要这个功能,要的是窗口显示)

    请告诉我方案,适用的范围。

    谢谢


    支持GNU运动,支持开源软件。 Microsoft的平台只适合游戏与3D绘图。 不过Mircosoft的IDE真的好用。 要是wine够强就好了。
    2010年8月17日 6:14

答案

  • Public Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    Dim _Process As System.Diagnostics.Process = System.Diagnostics.Process.Start("C:\WINDOWS\notepad.exe")
    
      While (Not _Process.WaitForInputIdle())
       Application.DoEvents()
      End While
    
      SetParent(_Process.MainWindowHandle, Me.Handle)
    

    http://feiyun0112.cnblogs.com/
    • 已标记为答案 minamo 2010年8月18日 1:49
    • 取消答案标记 minamo 2010年8月18日 11:39
    • 已标记为答案 minamo 2010年8月19日 6:58
    2010年8月18日 0:51
    版主
  • Declare 语句要放到最上面,Public Class Form1下

    任何有Handle属性的控件,比如这用的是form


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 minamo 2010年8月19日 6:58
    2010年8月19日 1:14
    版主

全部回复

  • 如果不行了话请告诉我。
    支持GNU运动,支持开源软件。 Microsoft的平台只适合游戏与3D绘图。 不过Mircosoft的IDE真的好用。 要是wine够强就好了。
    2010年8月17日 15:26
  • Public Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    Dim _Process As System.Diagnostics.Process = System.Diagnostics.Process.Start("C:\WINDOWS\notepad.exe")
    
      While (Not _Process.WaitForInputIdle())
       Application.DoEvents()
      End While
    
      SetParent(_Process.MainWindowHandle, Me.Handle)
    

    http://feiyun0112.cnblogs.com/
    • 已标记为答案 minamo 2010年8月18日 1:49
    • 取消答案标记 minamo 2010年8月18日 11:39
    • 已标记为答案 minamo 2010年8月19日 6:58
    2010年8月18日 0:51
    版主
  • 谢谢您。
    支持GNU运动,支持开源软件。 Microsoft的平台只适合游戏与3D绘图。 不过Mircosoft的IDE真的好用。 要是wine够强就好了。
    2010年8月18日 1:50
  • 对了,请您说明一下是在什么对象中使用,是label?还有我在visual studio 2010中复制到一个新建窗口中,提示

    Public Class Form1
    
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Public Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    
        Dim _Process As System.Diagnostics.Process = System.Diagnostics.Process.Start("C:\WINDOWS\notepad.exe")
    
        While (Not _Process.WaitForInputIdle())
          Application.DoEvents()
        End While
    
        SetParent(_Process.MainWindowHandle, Me.Handle)
    
    
      End Sub
    End Class
    
    中错误    1    关键字作为标识符无效。    C:\Users\Randy\AppData\Local\Temporary Projects\test\Form1.vb    4    16    test
    错误    2    未声明“SetParent”。它可能因其保护级别而不可访问。    C:\Users\Randy\AppData\Local\Temporary Projects\test\Form1.vb    12    9    test


    支持GNU运动,支持开源软件。 Microsoft的平台只适合游戏与3D绘图。 不过Mircosoft的IDE真的好用。 要是wine够强就好了。
    2010年8月18日 11:43
  • Declare 语句要放到最上面,Public Class Form1下

    任何有Handle属性的控件,比如这用的是form


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 minamo 2010年8月19日 6:58
    2010年8月19日 1:14
    版主