Question

Je souhaite créer un formulaire .NET en tant que formulaire TopMost pour une autre application externe (non liée à .NET, purement Win32) afin qu'il reste au-dessus de cette Win32App, mais pas du reste des applications en cours d'exécution.

J'ai le descripteur de Win32App (fourni par Win32App elle-même) et j'ai essayé Fonction Win32 SetParent () , via P / Invoke in C # , mais mon formulaire .NET reste confiné à Win32App et ce n’est pas ce que je veux.

Était-ce utile?

La solution

Je pense que vous cherchez est de P / Invoke SetWindowLongPtr (win32window, GWLP_HWNDPARENT, formhandle)

Recherche Google

Autres conseils

Oui! J'ai déjà une importation P / Invoke de SetWindowLongPtr (qui est x64 safe). Et en utilisant Reflector, j'ai recherché la propriété Form.Owner (c'est-à-dire la méthode get_Owner (valeur de formulaire)). et a réussi à changer le propriétaire avec

SetWindowLongPtr(childHdl, -8, OwnerHdl)

Je cherchais ce que voulait dire le -8 (0xFFFFFFFFFFFFFFF8) avant de pouvoir publier la solution ici, mais Joel l'a déjà signalé.

Merci!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top