初入activiex 问个弱智的问题

来源:互联网  时间:2016/8/29 20:02:00

关于网友提出的“ 初入activiex 问个弱智的问题”问题疑问,本网通过在网上对“ 初入activiex 问个弱智的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 初入activiex 问个弱智的问题
描述:

====假设我现在要实现一下功能:在控件中点击鼠标左键fire一事件event1,产生动作X====
1.在activex中添加事件后,有如下代码:
[id(1)] void event1();   //event1 为自定义
2.又有如下内联函数:
void FireEvent1()
     {FireEvent(eventidEvent1,EVENT_PARAM(VTS_NONE));}
3.然后消息映射:
void CAct_03Ctrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
FireEvent1();
COleControl::OnLButtonDown(nFlags, point);
}
现在的问题是:如何实现动作X,在哪产生,我猜测是上面的event1(),如果是,这个函数应该怎么写,
就是event1函数包含在哪个类中,而且我感觉这种一个message 触发一个event的情况直接用message不是更简单,为什么还要用event,例子都是用Click讲的,到这里有点想不通了,望各位不要笑我,指点一二。


解决方案1:

就是event1函数包含在哪个类中,而且我感觉这种一个message 触发一个event的情况直接用message不是更简单,为什么还要用event,例子都是用Click讲的,到这里有点想不通了,望各位不要笑我,指点一二。
这个问题其实就是所谓的“连接点”。
虽然理论上可以通过消息捕获与发送实现你说的,但是那没有什么通用性啊!
比如你写个控件,我来调用,我要处理鼠标双击事件,我确实可以通过api来搞定,但是那就太麻烦了,乃至搞不好我就不用你的控件了。

解决方案2:

在COM概念里,组件实现者就是COM服务器,组件使用者就是客户端,不要跟网络通信的C/S混淆。
消息是服务于线程和窗口的,事件(这里指的应该是连接点)是COM中的专用概念,说白了就是回调通知,但是不同于普通的回调函数,而是指回调接口。

上一篇写一个ActiveX控件的时候遇到的很郁闷的问题,全世界仅此一处
下一篇如何编写ActiveX的界面
明星图片
相关文章
《 初入activiex 问个弱智的问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)