Bonjour à tous,
voilà, j'ai une dialogbox 'A' et un bouton 'Ab' sur cette dialog. Quand je clique sur Ab, je dois ouvrir une dialogbox 'B' en modal. B contiens une ListBox (en réalité, elle en contient plusieurs, mais une suffira pour mon problème) que l'on appelera Bl.
Mon problème est le suivant: durant tout le déroulement de mon programme, A reçoit des données. Tout le temps, même si B est en modal par dessus elle. A doit traiter ces données, et en envoyer une partie à B pour mettre à jour Bl.
Premier soucis: lorsque je fais un Bl.AddString(), si B n'est pas active, je me prends une assertion non gérée!! cette FAQ nous explique pourquoi, et nous donne un début de réponse (merci farscape )
J'ai donc décidé d'utiliser une CStringList 'Bs', en membre public de B, que je remplis depuis A. Et quand j'arrive dans B.OnInitDialog(), je remplis Bl. Et là, j'arrive au
Deuxième soucis: Bl est mise à jour à l'initialisation de B. Mais en fait, j'ai besoin qu'elle soit mise à jour dès que 'Bs' est modifiée. Qu'à cela ne tienne, j'ai donc décidé de créer une fonction membre publique de B qui modifie Bs, et je passe Bs en membre privée de B. Ainsi, à la fin de cette fonction, je fais un OnInitDialog(). Mais là, j'arrive au
Troisième soucis: Catastrophe!! Il y a des moments ou Bs est mise à jour plusieurs fois par secondes!! Et là s'en est trop pour B, dont l'affichage perd le fil. Et le pire, c'est quand cette fonction est appelée alors que B n'est pas modale!!
Enfin bref, je suis un peu perdu. J'espère que j'ai été suffisamment clair dans mes explications, et que vous pourrez ainsi me donner quelques conseils.
Merci par avance.
Partager