Авг 21, 2014 -
Уроки C#, Уроки Visual Basic.NET
Написать комментарий
Уроки C#, Уроки Visual Basic.NET
Написать комментарий SetParent — дочернее окно в свое окно
В данном примере, мы откроем дочернее окно в своем окне и в этом нам поможет SetParent
Функция SetParent заменяет родительское окно заданного дочернего окна.
Public Class Form1
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim OPF As New OpenFileDialog
Dim prc As New Process
OPF.Filter = ".EXE|*.exe"
If OPF.ShowDialog = DialogResult.OK Then
WindowState = FormWindowState.Maximized
prc = Process.Start(OPF.FileName) ' запускаем процесс
End If
prc.WaitForExit(1000) ' маленькая задержка для появления окна, хоть WaitForExit совсем не для этой цели
SetParent(prc.MainWindowHandle.ToInt32, Me.Handle.ToInt32) ' приминяем
End Sub
End Class
А теперь, тот же самый пример, но только на C#
using System.Diagnostics; // процесс
using System.Runtime.InteropServices; // для функции
namespace SetParent
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll")]
static extern int SetParent(int hWndChild, int hWndNewParent);
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog OPF = new OpenFileDialog();
Process prc = new Process();
OPF.Filter = ".EXE|*.exe";
if (OPF.ShowDialog() == DialogResult.OK)
{
WindowState = FormWindowState.Maximized;
prc = Process.Start(OPF.FileName);
}
prc.WaitForExit(1000); // задержка, до появления окна
SetParent(prc.MainWindowHandle.ToInt32(), this.Handle.ToInt32()); // приминяем
}
}
}
Похожие записи:
Метки: api функция, setparent, дочернее окно, родительское окно, чужое окно
Евгений
Просмотров: 7 061
Запись опубликована в 21:02



