我是新手,求教:怎样触发事件?????

iwin 2000-07-12 03:07:00
我在VC中生成一个ATL OBJECT,但不知如何触发它的事件
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
60126关注!
iwin 2000-07-13
  • 打赏
  • 举报
回复
谢谢softdoctor的提点,希望以后对我多加指教!!!
softdoctor 2000-07-13
  • 打赏
  • 举报
回复
需要以下几步
1、在idl文件里加入事件接口
比如:
[
uuid(3CF27B93-8811-40AA-930C-8366B1197122),
helpstring("ObjEvent")
]

dispinterface IObjEvent
{
properties:
methods:
[id(1)] void Event1();
[id(2)] void Event2();
};
2、编译后,选择菜单Project->Add to project->Component and controls
选择Develop Studio Component双击
选择ATL Proxy Generator
选择你工程的.tlb文件,选刚才加入的借口生成Connection Point-> "Insert"
取合适的文件名,该工具将为您生成Connection Point声明文件,如果熟练的话可自己修改该文件。

3、在你的对象cpp里做如下修改
将如下语句加入你的对象继承里去
public CProxyIObjEvent<CYourObj>,
public IConnectionPointContainerImpl<CYourObj>
假设CYouObj是你的对象类。

加入以下语句
BEGIN_CONNECTION_POINT_MAP(CYourObj)
CONNECTION_POINT_ENTRY(DIID_IObjEvent)
END_CONNECTION_POINT_MAP()

4、将生成的头文件包含进来。

这样就可以触发事件了例如:Fire_Event1()

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧