Когда я открываю внешнее приложение как MDI Child, приложение открывается, но не как дочерний MDI. У меня есть класс, который работает notepad.exe правильно, но он не работает с моим собственным приложением:Почему я не могу открыть внешнее приложение как MDI?
public class ExternalApp {
[System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
private static extern uint SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
public static void LoadProcessInControl(string app_path, Control parent) {
System.Diagnostics.Process p = System.Diagnostics.Process.Start(app_path);
p.WaitForInputIdle();
ExternalApp.SetParent(p.MainWindowHandle, parent.Handle);
}
}
я вызываю функцию с этим:
ExternalApp.LoadProcessInControl(@"C:\Users\Bálint\Documents\Visual Studio 2013\Projects\TesztApp\TesztApp.exe", this);
В чем проблема?
Проблема заключается в том, что окно блокнота не правильный стиль (это не дочернее окно MDI, это окно верхнего уровня). Вы не можете заставить окно быть чем-то не таким, как вы можете заставить вашу золотую рыбу стать пакетом, просто привязывая большие и тяжелые пакеты к его спине. –
@ mbalint987 Я в основном имею то же, что и вы, с Notepad.exe, поскольку приложение загружает его, и блокнот отображается как ребенок - отлично, но у меня есть другое приложение, которое я создал (не блокнот или calc), а просто загружает как обычно, но не как ребенок - вы решили это? – harag