2011-10-01 2 views
2

Existe-t-il un moyen standard de conserver une liste de valeurs modifiable par l'utilisateur dans un objet CMFCPropertyGridProperty? Je pense à une chaîne avec délimiteur de point-virgule (qui semble être la norme de Windows). Si je veux une interface d'édition pour cela, comment pourrais-je construire cela?CMFCPropertyGridProperty liste de valeurs?

Répondre

2

Une option:

Vous pouvez hériter CMFCPropertyGridProperty et passer outre HasButton, retour TRUE. Cela provoquera l'apparition d'une ellipse ("...") dans la partie droite du champ de valeur. Remplacez OnClickButton pour fournir votre interface utilisateur pour l'édition de la liste de valeurs. Vous pouvez ouvrir une boîte de dialogue avec un contrôle de liste et un moyen d'ajouter/supprimer/modifier des éléments de la liste. Remplacez FormatProperty pour afficher la liste des valeurs dans le champ de valeur et remplacez ResetOriginalValue et implémentez le code pour restaurer la valeur avec laquelle vous êtes construit.

Une autre option:

Inherit CMFCPropertyGridProperty et remplacer OnKillFocus. Si la valeur entrée par l'utilisateur ne respecte pas le formatage autorisé (liste d'entiers séparés par des points-virgules, par exemple), affichez un avertissement et renvoyez FALSE pour empêcher la validation de la validation.

Questions connexes