Question

J'utilise Visual Studio 6.0 (VC ++ avec MFC) sur la plate-forme Windows XP. J'essaie de créer une zone de groupe avec le titre de la zone de groupe sous forme de case à cocher. Mon intention est la suivante: si la case à cocher est activée, les contrôles de la zone de groupe doivent être activés; ou bien désactivé.

Est-ce possible d'accomplir? Si oui, donnez-moi quelques indications.

Merci.

Était-ce utile?

La solution

Vous pouvez essayer différentes choses, en fonction de votre volonté de rester fidèle à votre idée et de la quantité de travail que vous êtes prêt à consacrer à l'effort:

Méthode simple

Utilisez une zone de groupe normale, puis dans cette option, faites en sorte que le premier élément soit la case à cocher. C’est simple à réaliser, mais l’objectif de la case à cocher comme titre est perdu.

Méthode de dessin géniale 1

Utilisez une zone de groupe normale, puis cochez la case dans l’espace où vous savez que le titre doit aller. Vous devrez effectuer des calculs difficiles pour bien l’intégrer et bien dessiner sans scintillement.

Méthode de dessin géniale 2

Utilisez une forme de superclasse . ou sous-classe / sous-classe dans la zone de groupe. Vous pouvez remplacer le gestionnaire WM_PAINT pour dessiner uniquement dans le cadre de la zone de groupe. Cochez la case normale à l'endroit où vous savez que le titre doit aller. Cela devrait fonctionner mieux car vous aurez plus de contrôle sur le dessin, mais il sera probablement difficile de bien faire les choses. D'après mon expérience, le sous-classement est moins risqué à mettre en œuvre que le super-classement.

Autres conseils

Utilisez-vous l’éditeur de dialogue? Si c'est le cas, déposez la zone de groupe. Ensuite, placez une case à cocher sur la ligne du groupe. Editez la ressource pour définir l'ordre Z ou faites-la en code. Vous voulez que la case à cocher soit en haut de la zone de groupe. Ajoutez un gestionnaire pour la case à cocher et activez / désactivez les contrôles en fonction de l'état de la case à cocher.

J'ai écrit un code appelé CGroupCheck il y a quelques années et disponible auprès de CodeProject: http: //www.codeproject.com/KB/buttons/groupcheck123.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top