J'ai une application C++ MFC avec une boîte de dialogue dans laquelle je souhaite modifier dynamiquement le type de contrôle en fonction de la sélection dans une zone de liste déroulante. La ressource de boîte de dialogue commence par un ancien contrôle d'édition simple que j'appelle ensuite SubclassDlgItem pour passer à un type de contrôle personnalisé.Utilisation de SubclassDlgItem pour modifier les types de contrôle
Jusqu'ici tout va bien. Maintenant, quand l'utilisateur change la sélection dans un autre Combobox sur l'écran, je veux changer ce contrôle à un type personnalisé différent. Donc, je détruis le contrôle existant en appelant delete sur le pointeur vers la classe personnalisée pour ce contrôle. J'appelle ensuite :: CreateEx pour recréer mon contrôle d'édition et appelle à nouveau SubclassDlgItem pour créer le nouveau contrôle personnalisé.
Mon problème est que cela scintille un peu, et je pense que je reçois le contrôle d'édition créé avec :: CreateEx au-dessus de mon contrôle personnalisé. Des idées sur la façon de se débarrasser du scintillement, surtout si l'utilisateur change rapidement le contenu de la zone de liste déroulante de contrôle?
Comment puis-je obtenir que de travailler avec un seul ID de contrôle? Ai-je besoin d'appeler à nouveau Unsubclass et Subclass pour changer le contrôle lié à l'ID? – Tyler