默认事件是不需要设计触发条件的
比如选择了click事件 如果鼠标点到了控件上 控件就会向容器程序发送事件
自定义事件的触发条件是在ActiveX内部设计的
比如 设计时间每到第0秒的时候 就触发一次事件 事件名称设为NEW_MINUTE
将自定义事件名称设为 NEW_MINUTE后 将会自动生成代码
// Event map
BEGIN_EVENT_MAP(CMy0705BCtrl, COleControl)
EVENT_STOCK_CLICK()
EVENT_CUSTOM_ID("NEW_MINUTE", eventidNEW_MINUTE, NEW_MINUTE, VTS_NONE)
END_EVENT_MAP()
protected:
void NEW_MINUTE(void) //这是一个自定义事件(用来向容器发送的事件)
{
FireEvent(eventidNEW_MINUTE, EVENT_PARAM(VTS_NONE));
}
然后手动写触发事件的代码 在OnDraw()中. (计时器会每0.2秒调用一次OnDraw)
<span style="white-space:pre"> </span>CTime time=CTime::GetTickCount();
static int z=59; //上一次z的值
if(0==time.GetSecond() && z!=0)
{
this->NEW_MINUTE();
}
z=time.GetSecond();
可以清楚的看到 两分钟过去了