Je voudrais héberger une fenêtre d'application d'un processus "A" dans la fenêtre principale d'un processus "B", comme si la fenêtre de "A" était une fenêtre enfant MDI. Est-ce possible dans Windows? Ou y a-t-il des trucs qui me permettraient de faire semblant? Par ailleurs, je voudrais enlever la barre de titre (ou mieux encore, tous les trucs non-client) de la fenêtre de "A" quand elle est intégrée dans la fenêtre de "B". Je suppose que cela doit être possible en peaufinant les styles de fenêtres ou les classes de fenêtres, mais je ne suis en aucun cas un expert dans ces intricacies Win32.Comment héberger une fenêtre d'application en tant qu'enfant d'une fenêtre appartenant à un autre processus?
3
A
Répondre
2
Il est possible d'héberger la fenêtre. Changez le parent HWND de A en appelant la fonction SetParent. Pour modifier les styles de fenêtre, vous devez utiliser la paire GetWindowLong/SetWindowLong pour modifier les attributs avec lesquels vous souhaitez fusionner.
S'il s'agit d'une application tierce (c'est-à-dire pas la vôtre), alors vous êtes probablement dans une mauvaise passe, en particulier si la fenêtre fait des thèmes ou quelque chose de personnalisé avec sa fenêtre (par exemple zone de traînée, etc).