以下是一个简单的示例代码:
// 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