【VS开发】动态创建ActiveX控件
来源:互联网 发布:爱奇艺会员领取软件 编辑:程序博客网 时间:2024/05/14 01:59
bool CCollectDataDlgDlg::CreateMyCtrl(LPRECT lpRect, UINT nID, CWnd *pParent)
{
CLSID clsid;
wstring strClsid = _T("{126983A5-3415-4A3F-B2C6-D18DDF6E43B9}"); // 控件id号
CCOMHelper COMHelper;
COMHelper.clsid_from_string(&clsid, strClsid.c_str());
BOOL bSucc = false;
TCHAR szMsg[1024] = {0};
try
{
// MyCtrl必须是全局的CWnd类对象
bSucc = m_MyCtrl.CreateControl(
clsid,
_T("CollectData"),
WS_CHILD | WS_VISIBLE| WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
CRect(lpRect),
pParent,
nID,
NULL, FALSE, NULL);
}
catch (CMemoryException* e)
{
e->GetErrorMessage(szMsg, 1024);
e->Delete();
}
catch (CFileException* e)
{
e->GetErrorMessage(szMsg, 1024);
e->Delete();
}
catch (CException* e)
{
e->GetErrorMessage(szMsg, 1024);
e->Delete();
}
if (!bSucc)
{
AfxMessageBox(_T("创建CollectData.ocx控件失败\r\n请检查CollectData.ocx控件是否安装并注册"));
return false;
}
IUnknown *pUnk = m_MyCtrl.GetControlUnknown();
CComQIPtr<_DCollectData> spDCollectDataCtl(pUnk);
if (spDCollectDataCtl == NULL)
{
AfxMessageBox(_T("无法从CollectData.ocx中获取_DCollectData接口"));
return false;
}
return true;
}
注意:必须在工程的app文件的InitInstance()中加入如下代码,否则动态创建控件不会成功
AfxEnableControlContainer();
- 【VS开发】动态创建ActiveX控件
- 动态创建Activex控件
- 【VS开发】动态添加的ActiveX控件如何响应事件
- 【VS开发】使用MFC创建并调用ActiveX控件
- VS.2003 中如何创建ActiveX控件
- VS 2012 C#ActiveX控件开发总结
- 【VS开发】VS2010中导入ActiveX控件
- 【VS开发】windows注册ActiveX控件
- 【VS开发】ActiveX控件如何定制属性?
- VB 动态创建ActiveX控件详解
- Access vba动态创建ActiveX控件
- 基于ActiveX 控件开发动态Web页
- 基于ActiveX 控件开发动态Web页
- 基于ActiveX 控件开发动态Web页
- 基于ActiveX 控件开发动态Web页
- 基于ActiveX 控件开发动态Web页
- 【VS开发】使用VS2010创建MFC ActiveX工程项目
- 动态创建的ACTIVEX。OCX控件 发布不能显示问题
- POJ 1915 BFS题目
- soft raid5阅读笔记之十--状态标志
- Android之AsyncTask异步加载(三)
- Spring之AOP面向切面编程实现(一)
- LLDB之理解LLDB基本命令语法
- 【VS开发】动态创建ActiveX控件
- eclipse编写java时printf出现错误
- 【VS开发】windows注册ActiveX控件
- soft raid5阅读笔记之十一--RAID6
- UVA12558->IDDFS
- vector::capacity
- IO流读取键盘录入
- adb无线调试
- 深入理解启动HOME--》实现自己的Activity运行