CMFCPropertyGridProperty с многострочным редактором - PullRequest
0 голосов
/ 08 апреля 2011

Как создать многострочное свойство с полем редактирования? Мне нужно еще одно свойство, которое будет отображать текст в многострочном окне.

CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("Appearance"));
pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Name"), (_variant_t) _T(""), _T("Specifies the text that will be displayed in the property")));
pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Comments"), (_variant_t) _T(""), _T("Specifies the text that will be associated with the property")));
m_wndPropList.AddProperty(pGroup1);

Ответы [ 2 ]

0 голосов
/ 03 апреля 2018

Вы можете сделать это как в старых редакторах стиля (заменив "\ n", "\ n", чтобы пользователь мог разделить строки на "\ n"):

Инициализация:

CString s = m_initial_params.m_info;
s.Replace("\n","\\n");
CMFCPropertyGridProperty* pProp = new 
CMFCPropertyGridProperty(misc_get_str_my(IDS_INFO), 
            (_variant_t) s, misc_get_str_my(IDS_INFO));
pProp->SetData(E_PROPERTY_DATA::OBJ_INFO);
pPropCtrl->AddProperty(pProp);

Чтение Значение:

int nProperty = pProperty->GetData();
if(E_PROPERTY_DATA::OBJ_INFO == nProperty)
{
    m_initial_params.m_info = pProperty->GetValue().bstrVal;
    m_initial_params.m_info.Replace("\\n","\n");
}
0 голосов
/ 02 мая 2011

Кажется, что многострочные свойства не реализованы в MFC Property Grid.Вы можете создать собственное свойство с помощью кнопки и показать свой собственный диалог с многострочным редактированием, когда пользователь нажмет эту кнопку.

...