CMFCPropertyGridProperty список значений?

#list #mfc #mfc-feature-pack

#Список #mfc #mfc-feature-pack

Вопрос:

Существует ли стандартный способ хранения редактируемого пользователем списка значений в CMFCPropertyGridProperty? Я имею в виду строку с разделителем запятой (это, кажется, стандарт Windows). Если мне нужен интерфейс редактирования для этого, как бы я его построил?

Ответ №1:

Один из вариантов:

Вы можете наследовать CMFCPropertyGridProperty и переопределять HasButton , возвращая TRUE . Это приведет к появлению кнопки с многоточием («…») в правой части поля значения. Переопределить OnClickButton , чтобы предоставить пользовательский интерфейс для редактирования списка значений. Вы можете открыть диалоговое окно с элементом управления списком и способом добавления / удаления / редактирования элементов в списке. Переопределите FormatProperty , чтобы отобразить список значений в поле value, а также переопределите ResetOriginalValue и реализуйте код для восстановления значения, с которым вы созданы.

Другой вариант:

Наследовать CMFCPropertyGridProperty и переопределять OnKillFocus . Если введенное пользователем значение нарушает разрешенное форматирование (например, список целых чисел, разделенных точкой с запятой), отобразите предупреждение и вернитесь FALSE , чтобы предотвратить фиксацию редактирования.