Dołącz okno formularza do innego okna w C #

Chcę dołączyć formularz do innego okna (innego procesu). Próbuję to zrobić za pomocą

[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

setParentWindow(myWindowHwnd, newParentHwnd);

Czyniąc to, moja forma zostaje przywiązana, ale równieżniewidoczny. Pytanie„Dołącz okno…” rozwiązuje ten problem dla okna WPF, w zasadzie za pomocą

HwndSourceParameters parameters = new HwndSourceParameters();
...
HwndSource src = new HwndSource(parameters);

Próbowałem przenieść to do mojego formularza, ale nie mogę tego zrobić (np. Jak sobie poradzićsrc.RootVisual = (Visual)window.Content; ? ->Kompletne źródło).

Kolejny komentarz mówi, muszę zmodyfikować styl okien:

Ze względu na zgodność SetParent nie modyfikuje stylów okna WS_CHILD lub WS_POPUP okna, którego rodzic jest zmieniany. Dlatego, jeśli hWndNewParent ma wartość NULL, należy również wyczyścić bit WS_CHILD i ustawić styl WS_POPUP po wywołaniu SetParent. I odwrotnie, jeśli hWndNewParent nie jest NULL, a okno było wcześniej dzieckiem pulpitu, należy wyczyścić styl WS_POPUP i ustawić styl WS_CHILD przed wywołaniem SetParent.

Tutaj brakuje mi odpowiedniego API, czy mogę to zrobić bezpośrednio z C # lub użyć innegoDllImport jeszcze raz?

Dobry lub zły - Win32 API SetParent () między różnymi procesami odradza dołączanie okien w różnych procesach, ale przynajmniej chcę spróbować.

Pytanie:

Co muszę zrobić, aby okno formularza było widoczne? Jeśli podejście zWS_Child jest poprawny, jak bym to ustawił? Albo jestPodejście WPF sposób na to, ale w jaki sposób zastosowałbym go do formularza systemu Windows?

- Wyniki (dodane później) -

Zmodyfikuj styl okien innej aplikacji za pomocą winAPI pokazuje, jak zmodyfikować styl z C # / PInvoke

Znajdź wszystkostyle okien tutaj, składnia C # na dole.

- Ustalenia z powodu dyskusji z Alanem -

Uruchomiłem mój program na Win XP do kontroli krzyżowej (zobacz odpowiedź Alana poniżej i komentarze). Przynajmniej teraz coś widzę. Ponieważ dodałem współrzędne w przykładach Alana, moje okno świeci teraz w notatniku, gdy przesuwa się po drugim oknie w lewym górnym rogu. Nadal możesz zobaczyć tekst wpisany w notatniku jako nakładkę. Under Win 7 (32) Nic nie widzę.

Teraz muszę się dowiedzieć, czy można to zapisać w sposób stabilny, pojawiając się również w Win 7.Niemniej jednak nadal nie mogę klikać żadnych przycisków na moim formularzu, trzeba też je rozwiązać.

questionAnswers(2)

yourAnswerToTheQuestion