如何从 CMFCPropertyGridProperty ComboBox 中获取选项?
Posted
技术标签:
【中文标题】如何从 CMFCPropertyGridProperty ComboBox 中获取选项?【英文标题】:How to get the option from CMFCPropertyGridProperty ComboBox? 【发布时间】:2020-07-15 11:45:38 【问题描述】:如何从CMFCPropertyGridProperty
类的ComboBox中获取选项
CMFCPropertyGridProperty* pShpType_S = new CMFCPropertyGridProperty(_T("shpType_S"), shpType_S, _T("shpType_S"));
pShpType_S->AddOption(_T("POINT"));
pShpType_S->AddOption(_T("LINE"));
pShpType_S->AddOption(_T("BOX"));
pShpType_S->AddOption(_T("CIRCLE"));
pShpType_S->AddOption(_T("SPHERE"));
pShpType_S->AddOption(_T("MESH"));
pShpType_S->AllowEdit(FALSE);
【问题讨论】:
新来的?请收下tour 并阅读How to Ask。 【参考方案1】:你应该可以使用:
CMFCPropertyGridProperty* pProperty = ...;
COleVariant vProperty = pProperty->GetValue();
if (vProperty.vt == VT_BSTR)
CString strValue = vProperty.bstrVal;
// If you also want the index
bool bFound = false;
int iNumOptions = pProperty->GetOptionCount();
for (int iOption = 0; iOption < iNumOptions; iOption++)
if (strValue.CollateNoCase(pProperty->GetOption(iOption)) == 0)
// Match!
bFound = true;
break;
// iOption has the index value.
查找:
CMFCPropertyGridProperty::GetValue
CMFCPropertyGridProperty::GetOption
CMFCPropertyGridProperty::GetOptionCount
COleVariant
变体可以包含几种不同类型的值,您必须检查.vt
成员。对于组合属性,该值将是一个文本字符串,因此您检查 [VT_BSTR][1]
。
[CMFCPropertyGridProperty::GetValue][1]
的实际定义是:
virtual const _variant_t& GetValue() const;
所以您也可以使用_variant_t
代替COleVariant
。但我用的是后者。
【讨论】:
以上是关于如何从 CMFCPropertyGridProperty ComboBox 中获取选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数
如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个