在本机上已经注册了某一个OCX控件,例如华表cell控件,然后在一个VC工程中的一个对话框中用Insert ActiveX Control加入一个CELL控件,然后通用的做法是在Project菜单中选择Add to project中的component and control中的注册过的控件,然后这个控件的头文件和源文件就加入到这个VC工程中了,然后在这个对话框类中包含这个控件头文件,再声明一个这个控件变量,最后这个控件就可以随便调用了。
但是有没有方法实现,不用导入控件的头文件和源文件,而直接用COM接口来实现对这个控件的控制呢?
不知道我说明白了没有,请各位高手指教,我得MSN:[email protected]
但是有没有方法实现,不用导入控件的头文件和源文件,而直接用COM接口来实现对这个控件的控制呢?
不知道我说明白了没有,请各位高手指教,我得MSN:[email protected]
解决方案 »
- ADO连接打开ACCESS,catch错误返回:无效指针
- 在静态库中使用 MFC 使就会出现这个、、
- editbox设置为password后,在xp64下输入的字符显示是竖条而不是星号
- 如何获得当前桌面激活的窗口的句柄
- 为什么我的BHO不工作
- 狂晕,怎么找不到OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)函数啊??
- 异步的connect为何变成同步的呢?
- 怎样区分ADO操作的错误类型?-紧急求助
- CString 转成Utf-8的问题
- 如何获得一个ActiveX控件的版本号
- switch为什么不能用CString类型?
- 如何在进程间共实现变量的共享读写?只要解决问题,分数随你要。
然后调用它的QueryControl函数,就可以得到控件的接口
通过该接口控制控件
{
CAxWindow m_axwindow;
CComPtr<IGrid> m_pgrid;
};//IDC_GRID为STATIC //get grid interface
try
{
m_axwindow.Attach( GetDlgItem(IDC_GRID) );
TESTHR(hr=m_axwindow.CreateControl( L"grid的progid" ));
TESTHR(hr=m_axwindow.QueryControl(IID_IGrid,(void **)&m_pgrid));
}
catch(_com_error &e)
{
_com_error_msg(_T("OninitDialog()"),_T(""));
}
然后调用它的QueryControl函数,就可以得到控件的接口
通过该接口控制控件
2、TESTHR(hr=m_axwindow.CreateControl( L"grid的progid" ));中的“grid的progid”是什么呀?
3、现在在用Qt,请问Qt下如何处理ActiveX控件呀?不导入头文件。