以下是该方法的基本用法和一些关键信息:
BOOL COleControl::OnGetPredefinedStrings(DISPID dispid, CStringArray& sa) const;
- dispid: 表示属性的 DISPATCH ID。
- sa: 用于存储预定义字符串列表的 CStringArray 对象。
在实现 OnGetPredefinedStrings 方法时,你需要根据 dispid 的值来确定是哪个属性需要预定义字符串列表。然后,你可以将可选的字符串添加到 sa 中。
以下是一个简单的示例:
BOOL MyControl::OnGetPredefinedStrings(DISPID dispid, CStringArray& sa) const
{
// 根据不同的属性 ID 设置相应的预定义字符串列表
if (dispid == DISPID_MY_PROPERTY)
{
sa.Add(_T("Option 1"));
sa.Add(_T("Option 2"));
sa.Add(_T("Option 3"));
return TRUE;
}
// 如果不是你关心的属性,调用基类实现
return COleControl::OnGetPredefinedStrings(dispid, sa);
}
在这个示例中,DISPID_MY_PROPERTY 是你希望提供预定义字符串列表的属性的 DISPATCH ID。你可以根据需要为属性定义多个选项。
这只是一个基本的示例,实际上你可能需要根据你的项目和属性的需求提供更复杂的逻辑。这个方法通常与属性的 COleDispatchDriver 方法一起使用,以确保在属性网格中正确地显示属性的可选值。
转载请注明出处:http://www.zyzy.cn/article/detail/21114/MFC/COleControl