cs_mastoc
Messages postés26Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention 3 mars 2009
-
6 mars 2008 à 13:22
cs_mastoc
Messages postés26Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention 3 mars 2009
-
18 mars 2008 à 09:28
Bonjour, bonjour,
Le contexte : le but du travail que je suis en train d'effectuer est de pouvoir ouvrir une application sur laquelle je bosse depuis une autre application que l'on peut qualifier de mère. L'application mère est en C++ pour sa majeur partie et mon application est en C#. Pour appeler mon appli j'utilise un Active X de façon à rester sur le même processus que l'application mère.
L'Active X fonctionne et j'arrive à appeler mon application et à dialoguer avec l'application mère.
Par contre lors des tests de mon application démarrer en ActiveX j'ai observé un problème...
Le problème : dans mon application j'ai la possibilité d'ouvrir de nouvelle fenêtre via par exemple un clique sur un bouton. Et bien il se trouve que lorsque je clique sur le bouton pour ouvrir cette fenêtre tout le process se frise... Plus rien ne fonctionne et je n'ai absolument aucune exception qui m'est renvoyé ! Rien de rien ! La fenêtre qui doit s'ouvrir est une fenêtre modale et je subodore que pour Windows le processus est actif et qu'il attend une réponse. En gros la fenêtre est lancé mais elle n'apparait pas. En débugant, je me suis aperçu que l'initialisation des composants de la fenêtre se passait bien et que tout planté en arrivant à :
"fenetre.ShowDialogResult() == DialogResult.OK". Tout frise à partire du moment ou l'une des méthodes Show ou ShowDialog ou Visible (= true) sont exécutées...
En allant plus loin dans mes recherches et aprés moulte passage de parent, de parent de parent, de fenêtre de parent, etc... je me suis aperçu que le bouton était placé dans une page d'un TabControl. Pour être sûre que mon programme n'était pas en cause dans ce problème j'ai créé à part un ActivX de la même façon j'y ai insérer un nouveaeu TabControl contenant une page avec un bouton qui appel une fenêtre. J'exécute l'appli, je clique sur le bouton et la paf ! Tout frise.
En gros, il semblerait que l'ActiveX n'aime pas trop le TabControl.
Mise à part trouver une autre solution que d'utiliser le TabControl savez-vous pourquoi il y a ce phénomène ?
cs_mastoc
Messages postés26Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention 3 mars 2009 13 mars 2008 à 10:11
voici un petit projet simulant ma situation. Le but était de savoir si la solution mère n'était pas en cause et par la même occasion faire de même avec l'application appelé depuis elle.
Donc vous avez une application en MFC et l'autre en c#. Je pense que cette petite appli vous parlera plus que la longue explication de tout à l'heure.
Pour reproduire :
-> Compilez et éxécuter.
-> cliquez sur le bouton 1 = OK.
-> cliquez sur bouton 2 = KO.
Voilà en espérant que mes efforts d'explication ne seront pas vains^^ !