一个ActiveX组件,能不能在COM里面调用它的方法 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也可以作为CComObject模板类的参数,直接实例化后调用相关的类方法 我做了一个简单的ActiveX控件,只有一个方法 int Test() 返回一个整数值,用MFC创建个对话框作为Container,加入这个ActiveX控件,然后可以调用方法Test() 但是在COM里面如何调用,COM里面能创建对话框吗,COM能做Container吗 ATL composed control可以实现你得要求,可以把你得ACTIVEX控件拉上去形成复合控件 而且体积小,就是开发麻烦一点,直接用SDK写 to loverx能不能说的详细一点 向导--ATL---ATL项目然后添加类---ATL控件---向导对话框--选择复合控件结果是:会出现一个类似对话框的“航母”右键插入ACTIVEX控件,把你的飞机停上去至于细节怎么写,那是另外一个话题~~~ sdk都可以别说atl了,方法很简单,atl工程里加个对话框资源,把activex拖进去,生成一个无窗口的无模式对话框:AtlAxCreateDialog(_Module.GetModuleInstance(), MAKEINTRESOURCE(你对话框的资源ID), NULL, Dlg_Proc, 0);取得activex子窗口:CAxWindow wndActivex = GetDlgItem(对话框窗口句柄, activex的资源ID);取得接口指针:hr = wndActivex.QueryControl(__uuidof(接口IID), (void**)&pActivex);好啦,用pActivex指针调用函数就可以了。 to XXandOOAtlAxCreateDialog(_Module.GetModuleInstance(), MAKEINTRESOURCE(你对话框的资源ID), NULL, Dlg_Proc, 0) ///////////////Dlg_Proc怎么定义 hr = wndActivex.QueryControl(__uuidof(接口IID), (void**)&pActivex); /////接口IID是谁的接口ID to 巧克力饼Dlg_Proc就是dialog的窗口处理过程,就和普通的windows窗口过程是一样的。接口IID当然是activex里你要调用的函数的接口的IID,这里我写错了一点,__uuidof就是把接口名字转成IID用的,应该是__uuidof(接口名字) 本人菜鸟,想请教下关于MFC中的一个问题 CStringA 的定义问题 如何模拟七段数码管的显示 关于进程权限的问题,求教 windows api取文件类型? 一个比较低的问题。 当鼠标左键按下时,如何动态地创建一个窗体;当鼠标移动时被创建的窗体也跟随鼠标移动;非常急,请大家帮帮忙!!! 菜鸟求教一段代码 sos 如何将ceditview里的内容读出并转化为数字,以便于生成检校码 LVS_ICON风格的clistctrl控件 ,如何指定每行应该具有几个图标 可以实现不需要注册的com组件吗?100大洋请教
可以实现你得要求,可以把你得ACTIVEX控件拉上去
形成复合控件
会出现一个类似对话框的“航母”
右键插入ACTIVEX控件,把你的飞机停上去
至于细节怎么写,那是另外一个话题~~~
AtlAxCreateDialog(_Module.GetModuleInstance(), MAKEINTRESOURCE(你对话框的资源ID), NULL, Dlg_Proc, 0);
取得activex子窗口:
CAxWindow wndActivex = GetDlgItem(对话框窗口句柄, activex的资源ID);
取得接口指针:
hr = wndActivex.QueryControl(__uuidof(接口IID), (void**)&pActivex);
好啦,用pActivex指针调用函数就可以了。
hr = wndActivex.QueryControl(__uuidof(接口IID), (void**)&pActivex); /////接口IID是谁的接口ID
Dlg_Proc就是dialog的窗口处理过程,就和普通的windows窗口过程是一样的。
接口IID当然是activex里你要调用的函数的接口的IID,这里我写错了一点,__uuidof就是把接口名字转成IID用的,应该是__uuidof(接口名字)