VS2008 MFC对话框工程中,在对话框中添加ActiveX控件生成类的问题
2011-06-03 10:00
357 查看
在开发过程中,以前使用VC6.0,直接将ActiveX控件拖到对话框中,利用Classwizard生成变量,VC6.0会帮你自动生成所有的ActiveX控件类,但在Vs2008,这样做,只是简单生成一个窗口类,并且没有关于控件的属性和方法.
通过网上查资料及自己研究,以下是解决途径:
1在对话框中窗口中,可以利用以下代码,来得到控件的IUnknown接口中.
CComPtr<IUnknown> m_spUnk;
CComPtr<IDispatch> curDisPtr
CWnd *pCWnd = GetDlgItem(IDC_CTRL1);
if (pCWnd != NULL)
{
HRESULT hr;
m_spUnk = NULL;
m_spUnk = pCWnd ->GetControlUnknown();
if (m_spUnk != NULL)
{
m_spUnk ->QueryInterface(IID_IDispatch, (void **)&curDisPtr);
}
}
2 选择目录Project/Add Class/MFC/MFC Class From ActiveX Control中,选择第一步中ActiveX控件对应的文件,即可生成
ActiveX对应的所有类.
3 找到ActiveX控件的主包装类(CMainActiveX),利用
CMainActiveX main;
main.AttachDispatch(spDisp);
通过网上查资料及自己研究,以下是解决途径:
1在对话框中窗口中,可以利用以下代码,来得到控件的IUnknown接口中.
CComPtr<IUnknown> m_spUnk;
CComPtr<IDispatch> curDisPtr
CWnd *pCWnd = GetDlgItem(IDC_CTRL1);
if (pCWnd != NULL)
{
HRESULT hr;
m_spUnk = NULL;
m_spUnk = pCWnd ->GetControlUnknown();
if (m_spUnk != NULL)
{
m_spUnk ->QueryInterface(IID_IDispatch, (void **)&curDisPtr);
}
}
2 选择目录Project/Add Class/MFC/MFC Class From ActiveX Control中,选择第一步中ActiveX控件对应的文件,即可生成
ActiveX对应的所有类.
3 找到ActiveX控件的主包装类(CMainActiveX),利用
CMainActiveX main;
main.AttachDispatch(spDisp);
相关文章推荐
- vs2008下 MFC-Tab页子对话框中添加ocx控件 引起问题
- “Visual Studio 2008 + IE8下,为MFC工程对话框资源添加类时发生错误”问题的解决
- “Visual Studio 2008 + IE8下,为MFC工程对话框资源添加类时发生错误”问题的解决办法
- MFC在VS2008中为ActiveX控件添加属性
- 解决vs2008非MFC工程依赖msvcr90.dll的问题
- VS2013MFC对话框工程学习笔记三 - 添加一个MFC类库的按钮响应事件
- 非MFC工程添加对话框
- 在MFC工程中添加一个有列表的对话框
- 在mfc对话框前添加起始对话框的问题
- vs2008 mfc工程界面显示win98风格问题
- VS2008基于对话框,在资料里添加了菜单,界面不显示菜单问题
- 关于VS2008里面的FormClosing事件内添加对话框后重复执行的问题
- MFC在添加gsoap生成的源文件到工程项目中,出现bug: MFC apps must not #include <windows.h>
- 当向工程中添加ActiveX控件时,弹出添加不成功对话框……
- MFC 对话框工程中添加菜单(VC++ 6.0编译器)
- 在MFC对话框中添加背景图片中遇到的问题之解决
- MFC在VS2008中对ActiveX控件添加事件 .
- MFC在VS2008中对ActiveX控件添加方法 .
- 在vs2008下的MFC(ActiveX)工程怎么生成ocx控件
- VS2013MFC对话框工程学习笔记四 - 为按钮添加一个响应事件二