#list #mfc #mfc-feature-pack
#Список #mfc #mfc-feature-pack
Вопрос:
Существует ли стандартный способ хранения редактируемого пользователем списка значений в CMFCPropertyGridProperty? Я имею в виду строку с разделителем запятой (это, кажется, стандарт Windows). Если мне нужен интерфейс редактирования для этого, как бы я его построил?
Ответ №1:
Один из вариантов:
Вы можете наследовать CMFCPropertyGridProperty
и переопределять HasButton
, возвращая TRUE
. Это приведет к появлению кнопки с многоточием («…») в правой части поля значения. Переопределить OnClickButton
, чтобы предоставить пользовательский интерфейс для редактирования списка значений. Вы можете открыть диалоговое окно с элементом управления списком и способом добавления / удаления / редактирования элементов в списке. Переопределите FormatProperty
, чтобы отобразить список значений в поле value, а также переопределите ResetOriginalValue
и реализуйте код для восстановления значения, с которым вы созданы.
Другой вариант:
Наследовать CMFCPropertyGridProperty
и переопределять OnKillFocus
. Если введенное пользователем значение нарушает разрешенное форматирование (например, список целых чисел, разделенных точкой с запятой), отобразите предупреждение и вернитесь FALSE
, чтобы предотвратить фиксацию редактирования.