我要在对话框中使用一个第三方的ActiveX控件,但这个控件不支持从gallery里Add to project, insert control.即无法用dialog resource editor加入。
我只知道首先要用import将dll或lib倒入。但是如何生成一个instance,如何使用CreateControl? 如何使用它的方法和事件?请讲的详细一点,谢谢!!!
我只知道首先要用import将dll或lib倒入。但是如何生成一个instance,如何使用CreateControl? 如何使用它的方法和事件?请讲的详细一点,谢谢!!!
解决方案 »
- 散200分。进了个华为外包公司,心情郁闷,散点分。
- 如何设置对话框里的几个按钮的得到焦点
- 关于一个设计一个简单的界面问题???
- 我动态的create一个imagelist,请问如何将他与一个toolbar绑定并显示出来。
- mfc中,自动生成控件,请朋友指点(结果出来,马上结贴)
- SOS!我做了个写字板,怎样实现支持多种文档类型?默认只支持RTF,给分20
- 给我介绍本网络编程的书好么??
- VC跟VB一起装,就会出现IE崩溃错!!
- 难题,CEDIT编辑框设置字数限制后,英文和中文的字数一样这么办?
- 去掉窗体边框的线
- 单步调试位置不对,急急急急!!!!!!!!
- 谁有OFFICE2000的注册号???在线等
1、首先用一个简单的窗口类包装那个ActiveX
// This code is generated by the Control Wizard.
// It wraps the call to CreateControl in the call to Create.
class CGenocx : public CWnd
{
protected:
DECLARE_DYNCREATE(CGenocx)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x8a6bbfeb, 0xf9bb, 0x11d1, { 0xb9, 0xc9, 0x0,
0x60, 0x8, 0x93, 0xb0, 0xfe } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
return CreateControl(GetClsid(), lpszWindowName,
dwStyle, rect, pParentWnd, nID);
}
...
};2、在Dialog类里声明这个ActiveX的成员,
class CMyDialog : public CDialog {
... CGenocx control;
};3、在资源文件你的 DIALOG 段中加入ActiveX控件的说明
IDD_TPATEST_DIALOG DIALOGEX 0, 0, 443, 325
...
BEGIN
...
CONTROL "",IDC_CTRL1,"{12345678-1234-5678-1234-123456789000}",
WS_TABSTOP,7,7,375,311
...
END好了,现在你应该已经可以用这个控件了。方法和事件的调用取决于你的包装类,即上面的CGenocx。ActiveX接口最简单的包装就是用InvokeHelper()了。Good luck!