在 MFC(Microsoft Foundation Classes)中,COleControlSite 类提供了 SetProperty 方法,用于设置 ActiveX 控件的属性。以下是该方法的一般描述:
BOOL COleControlSite::SetProperty(DISPID dwDispID, VTS_I4 lVal);
BOOL COleControlSite::SetProperty(DISPID dwDispID, VTS_BSTR bstrVal);
BOOL COleControlSite::SetProperty(DISPID dwDispID, VTS_R8 dblVal);

这个方法允许您通过指定 Dispatch ID(DISPID)设置 ActiveX 控件的不同类型的属性。在 MFC 中,Dispatch ID 用于唯一标识 ActiveX 控件的属性或方法。

VTS_I4、VTS_BSTR、VTS_R8 是宏,表示要设置的属性值的类型,分别为 long、BSTR(字符串)、double。

示例代码可能如下所示:
COleControlSite* pControlSite = // 获取 COleControlSite 对象的方式;

if (pControlSite != nullptr) {
    // 设置一个整数类型的属性
    pControlSite->SetProperty(DISPID_MY_INTEGER_PROPERTY, VTS_I4, 42);

    // 设置一个字符串类型的属性
    CString strValue = _T("Hello, ActiveX!");
    pControlSite->SetProperty(DISPID_MY_STRING_PROPERTY, VTS_BSTR, strValue);

    // 设置一个双精度浮点数类型的属性
    double dblValue = 3.14;
    pControlSite->SetProperty(DISPID_MY_DOUBLE_PROPERTY, VTS_R8, dblValue);
}

上述示例代码中的 DISPID_MY_INTEGER_PROPERTY、DISPID_MY_STRING_PROPERTY、DISPID_MY_DOUBLE_PROPERTY 是具体 ActiveX 控件中定义的 Dispatch ID,需要根据您的 ActiveX 控件的实际情况进行替换。

请注意,具体的使用可能还受到您应用程序的架构和需求的影响。


转载请注明出处:http://www.zyzy.cn/article/detail/21235/MFC/COleControlSite