Question

Programmation dans Windows avec Visual Studio 2010 C ++ et MFC. Ma question concerne la meilleure façon de stocker, de mettre à jour et de faire passer les paramètres ou les options du programme.

J'ai une simple fenêtre / cadre / boîte de dialogue principale principale. Dans cette fenêtre principale, j'ai un bouton d'options. Lorsque je clique sur le bouton Options, je crée une boîte de dialogue Options.

À l'intérieur de la boîte de dialogue Options, j'obtiens une référence à "l'application" (un concept MFC, disponible à l'échelle mondiale) et je sais une référence à mon cours de paramètres personnalisés (une instance est stockée dans la classe d'application. À partir de là, je peux remplir ma boîte de dialogue d'options et Enregistrez mes options.

Peut-être devrais-je utiliser l'injection de dépendance pour injecter les paramètres dans ma boîte de dialogue d'option? Ou peut-être que je ne devrais même pas accéder aux paramètres à partir de la classe de dialogue? Peut-être que je devrais exposer les paramètres via set / montez sur la classe de dialogue?

De plus, je veux maintenant afficher certaines options sur la fenêtre principale, tout en les gardant réglées dans la boîte de dialogue Options d'origine. Alors maintenant, je me demande ce qu'est un bon design pour cela. Si je définis une option dans ma boîte de dialogue Options, je souhaite qu'il mette à jour les options affichées dans la fenêtre principale.

Je suppose que c'est un bon endroit pour le modèle d'observateur, mais j'essaie de comprendre comment le reconstituer dans un contexte MFC (qui, du mieux que je peux dire, est à peu près le même que toute autre boîte à outils GUI dans tout autre langue, donc si vous n'êtes pas dans MFC, je veux toujours vos commentaires)

  1. Comment dois-je passer mes paramètres?
  2. Comment garder l'affichage GUI des paramètres en synchronisation les uns avec les autres? De telle sorte qu'après avoir cliqué sur OK dans la boîte de dialogue Options, les options directement affichées dans la fenêtre principale sont mises à jour?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top