So ändern Sie einen Fensterbesitzer mit seinem Handle

8

Ich möchte ein .NET-Formular als TopMost-Formular für eine andere externe Anwendung erstellen (nicht .NET-bezogen, reines Win32), damit es über dieser Win32App bleibt, aber nicht den Rest der Anwendungen ausführt.

Ich habe das Handle der Win32App (von der Win32App selbst bereitgestellt), und ich habe versucht Win32 SetParent () Funktion , über P / Invoke in C # , aber dann wird mein .NET-Formular in die Win32App eingeschränkt und das ist nicht das, was ich will.

    
Ricardo Amores 25.09.2008, 12:49
quelle

2 Antworten

12

Ich denke, Sie suchen nach P / Invoke SetWindowLongPtr(win32window, GWLP_HWNDPARENT, formhandle)

Google-Suche

    
Joel Lucsy 25.09.2008, 13:42
quelle
2

Ja! Ich habe bereits einen P / Invoke-Import von SetWindowLongPtr (was x64 sicher ist). Und mit Reflektor suchte ich nach der Form.Owner Eigenschaft (d. H. Die Methode get_Owner (Form value)) und schaffte es, den Besitzer mit

zu ändern %Vor%

Ich habe gesucht, was das -8 (0xFFFFFFFFFFFFFFF8) bedeutete, bevor ich die Lösung hier posten konnte, aber Joel hat es bereits darauf hingewiesen.

Danke!

    
Ricardo Amores 25.09.2008 13:57
quelle

Tags und Links