2017-07-18 1 views
-3

Dans notre application, nous avons un dialogue (CDialog) qui est montré à partir du monde non géré C++ MFC.C# - ShowDialog définit le propriétaire de la fenêtre non managée

Ma boîte de dialogue modale Win-Forms (C#) doit définir la boîte de dialogue non gérée en tant que propriétaire et donc en tant que parent.

Je ne connais pas le handle ou quoi que ce soit d'autre à propos de la fenêtre C++.

Ma question est - comment puis-je trouver la fenêtre actuellement active à partir du MFC non géré et définir cela en tant que propriétaire de mon dialogue modal.

GerForegroundWindow fournit une fenêtre active dans toute la session, pas dans mon application.

J'apprécierais vraiment toute aide de votre part.

+0

Pouvez-vous nous dire quelles recherches vous avez faites pour essayer de le faire? Des méthodes trouvées pourquoi n'ont-elles pas fonctionné? – Eddge

+1

Bonjour et bienvenue à SO !, s'il vous plaît consulter la [documentation sur poser une question] (https://stackoverflow.com/help/how-to-ask). Je suis assez sûr qu'une question sur la recherche de la fenêtre active actuelle a déjà été posée. De plus, vous avez formulé une bonne question dans votre message, pourquoi ne pas l'utiliser dans le titre? –

+0

Copie possible de [Comment obtenir le titre de la fenêtre active en cours en utilisant C#?] (Https://stackoverflow.com/questions/115868/how-do-i-get-the-title-of-the-current -active-window-using-c) – Eddge

Répondre

0

Résolu à l'aide de GetActiveWindow. Pour créer le propriétaire j'ai ensuite utilisé NativeWindow.FromHandle et passé le handle récupéré à partir de GetActiveWindow

Merci!

+0

Et pourquoi n'utilisez-vous pas le m_hWnd de la boîte de dialogue? – xMRi