在 MFC(Microsoft Foundation Classes)中,COleControlContainer 类提供了 CreateControl 方法,该方法用于在容器中创建和激活 ActiveX 控件。

以下是一个简单的示例代码:
// MyOleControlContainer.h
class CMyOleControlContainer : public COleControlContainer
{
    // ...
public:
    // 示例中使用的方法
    BOOL CreateMyControl(CWnd* pParentWnd, UINT nID, REFCLSID clsid);
};

// MyOleControlContainer.cpp
#include "MyOleControlContainer.h"

BOOL CMyOleControlContainer::CreateMyControl(CWnd* pParentWnd, UINT nID, REFCLSID clsid)
{
    COleControlSite* pSite = NULL;

    // 在容器中创建 ActiveX 控件
    if (CreateControl(clsid, NULL, WS_VISIBLE | WS_CHILD, CRect(0, 0, 0, 0), pParentWnd, nID, NULL, &pSite))
    {
        // 添加控件站点到控件容器
        AddControlSite(pSite);

        // 激活控件
        pSite->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL);

        return TRUE;
    }

    return FALSE;
}

在这个示例中,CreateMyControl 方法接受父窗口指针 pParentWnd、控件标识符 nID 以及要创建的 ActiveX 控件的类标识符 clsid。它使用 CreateControl 方法来创建 ActiveX 控件,并将控件站点添加到控件容器中。然后,它通过调用 DoVerb 方法来激活控件。

请注意,具体的类标识符 clsid 和其他参数可能会根据你的应用程序和控件的需求而有所不同。这个方法的目的是在运行时动态地创建和激活 ActiveX 控件。


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