描述:
我现在有一个第三方的ocx控件如何让它在另一个自己做的ocx控件中动态显示
解决方案1:
给你一个例子
在对话框中添加一个ActiveX控件,在VC中很容易,直接添加到资源模板上,然后生成对应的类来操作。
在非对话框模板窗口上创建ActiveX控件也很简单,通过CreateControl函数来创建。这种方式的优点是在没有注册相应的ActiveX控件的时候可以灵活处理。
以DynamicGif控件为例:
CRect rc;
CDynamicgif1* gif = new CDynamicgif1();
GetDlgItem(IDC_PLACEHOLDER)->GetWindowRect(&rc);
GetDlgItem(IDC_PLACEHOLDER)->DestroyWindow();
ScreenToClient( &rc );
gif->Create( _T("Gif"),WS_CHILD|WS_VISIBLE,rc, this, IDC_PLACEHOLDER+100 );
gif->ShowWindow(SW_SHOW);
gif->LoadFromFile( _T("e:\\s.gif"));
gif->Play();
这里Create是对CreateControl的封装:
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,pPersist, bStorage, bstrLicKey);