程序中有一个MDI窗体,多个MDI子窗体,多个按钮,在MDI窗体中有一个图象框控件,请问怎样才能当单击其中一个按钮时在MDI窗体的图象框中显示一个子窗体,单击别的按钮时又显示别的MDI子窗体?

解决方案 »

  1.   

    用setparent可以实现:
    【VB声明】
      Private Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long【说明】
      指定一个窗口的新父(在vb里使用:利用这个函数,vb可以多种形式支持子窗口。例如,可将控件从一个容器移至窗体中的另一个。用这个函数在窗体间移动控件是相当冒险的,但却不失为一个有效的办法。如真的这样做,请在关闭任何一个窗体之前,注意用SetParent将控件的父设回原来的那个) 【返回值】
      Long,前一个父窗口的句柄 【备注】
      可用这个函数在运行期将vb控件置入容器控件内部(比如将一个按钮设成图象或窗体控件的子窗口),或者将控件从一个容器控件移至另一个。控件移至另一个父后,它的位置将由新父的坐标系统决定。这样一来,有必要重新规定控件的位置,使其能在目标位置显示出来【参数表】
      hWndChild ------  Long,子窗口的句柄  hWndNewParent --  Long,hWndChild的新父
      

  2.   

    不用MDI窗体,用setparent来嵌入窗体可以了
      

  3.   

    比如用form1作为主窗体,在上面画一个command按钮.一个Picture控件.
    Private Sub Command1_Click()
    Form2.Show , Me
    SetParent Form2.hwnd, Me.Picture1.hwnd
    End Sub