Привязка CMFCPropertyGridProperty и CCombobox

Я разрабатывал приложение MFC и заметил, что поле со списком, созданное после использования метода CMFCPropertyGridProperty::AddOption(), не имеет столько функций, сколько класс CCombobox. Есть ли способ связать объекты из этих двух классов? (Лучше сказать, есть ли способ добавить объект CCombobox в один подэлемент CMFCPropertyGrid?)

Если это невозможно, есть ли альтернативный способ использования поля со списком с теми же (или только некоторыми) функциями, предоставляемыми классом CCombobox?


person Mudkip    schedule 21.08.2013    source источник


Ответы (1)


Проверьте CreateCombo защищенный член класса CMFCPropertyGridProperty. Вы должны создать новый объект CComboBox внутри этой перегруженной функции-члена и инициализировать его с помощью Create. Собственность несет ответственность за окончательную (не очень уверенную) уборку.

ОБНОВЛЕНИЕ:

Некоторое время назад я столкнулся с проблемой с полем со списком внутри класса сетки свойств. Если вы хотите перехватывать некоторые расширенные CComboBox события или вызывать CComboBox методы внутри или вне вашего класса свойств, вы должны определить свой собственный CreateCombo метод внутри вашего собственного свойства и вызывать CreateCombo метод базового CMFCPropertyGridProperty класса. Он возвращает действительный указатель CComboBox*. Сохраните этот указатель внутри вашего свойства, и тогда вы сможете делать с ним что угодно.

person Dmitry K.    schedule 02.10.2013