C++ 自定义消息事件是如何实现的(MFC串口通信)

C++ 自定义消息事件是怎么实现的(MFC串口通信)
首先,有两个类A,B和界面C

A是MSComm控件类

我用A里面采集数据,B里面接收处理数据,C里面显示数据。
A里面使用MSComm串口采集数据,当采集到数据的时候触发事件。

问题
1.A里面怎么触发采集到数据的事件啊
2.A采集到数据之后,怎么告诉B,B处理完之后怎么告诉C啊

初学C++,据说是用消息传递的,但是不知道这消息是怎么个模型,是怎么实现的。求帮助。

网上说用ON_MESSAGE()消息,我在B类.cpp里面有如下定义
BEIGIN_MESSAGE_MAP(COMMCONTROL)
ON_MESSAGE(UM_COMMESSAGE, OnReceiveData)
END_MESSAGE_MAP()

//串口事件
BEGIN_EVENTSINK_MAP(COMMCONTROL)
ON_EVENT(COMMCONTROL, IDC_MSCOMM, 1, COMMCONTROL::OnCommMscomm, VTS_NONE)
END_EVENTSINK_MAP()

void COMMCONTROL::OnCommMscomm()
{
// TODO: 在此处添加消息处理程序代码
VARIANT variant_inp; 
COleSafeArray safearray_inp;  
LONG k;  
CString cs;
switch(comm.get_CommEvent())  

case 1: // comEvSend发送数据
break; 
case 2: // comEvReceive读取数据 串口接收事件到来
variant_inp=comm.get_Input(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
this->m_rxLen=safearray_inp.GetOneDimSize(); //得到有效数据长度  

// 接受数据  
for(k=0; k<m_rxLen; k++) 

safearray_inp.GetElement(&k,m_rxData+k); //转换为BYTE型数组 

break; 
default: 
// 传输事件出错 
break; 
}


很乱了,搞不明白了。

------解决方案--------------------
我也不明白 楼主加油