码迷,mamicode.com
首页 > 其他好文 > 详细

终极理解ON_MESSAGE和ON_NOTIFY

时间:2014-05-01 17:10:55      阅读:486      评论:0      收藏:0      [点我收藏+]

标签:des   blog   ext   get   2014   404   http   com   line   数据   .net   

------《两种消息发送》--------------------


SendMessage()---->


             ON_MESSAGE(注册的消息)
             ON_NOTIFY(注册的消息)




SendPoMessage()--->


            ON_PO_MESSAGE(注册的消息)
            ON_PO_NOTIFY(注册的消息)
=======《两种消息发送》=================


-------《点击趋势图上面的右键频谱图菜单,来获取频谱数据并显示信息页》------------------------


趋势图上面点击操作


<Panel中判断>
点击   
 
     左键
     右键


左键


     通过函数调用方式请求频谱数据RequestWaveFFT(a_pTrend, nLineIndex, nIndex, WM_RC_ALARM_QUERY_VIB_FFT, 2, pTrendDest->GetSafeHwnd());
请求数据需要传入的参数有趋势图、线、点。


     在上面这个函数里面,发送一个消息PostPOMessage。




<PO>
     ON_PO_MESSAGE(注册的消息)   这里向中间件请求数据


     ON_PO_NOTIFY(注册的消息)    这里向操作页发送消息 m_dlgOpPage.SendMessage(WM_RC_ALARM_QUERY_VIB_FFT, wparam, lparam);这里用的是sendmessage
     
     


<DlgOpPage中>
     可惜只有ON_MESSAGE(注册的消息)  这里直接通过PO的对象来调用po的函数g_pPO->DrawFFT(pData)
     
   
<PO里面来画图和显示操作页>


========《点击趋势图上面的右键频谱图菜单,来获取频谱数据并显示信息页》=========================


//附图片

mamicode.com,码迷


---------------------------------------------------------------------------------------------------------------

......begin......


//***CDlgAxisPosition.cpp
//对话框控件点击
-> CDlgAxisPosition::OnBnClickedBtnStopandrefresh()
//函数调用
-> RequestHisData();
//向指定控件发送异步消息(寄存到消息队列立即返回)
-> g_poAxisPosition->PostPOMessage(POMSG_BH5000_COMMON_VIBTRENDHIS_OFF_GETVIBCHANNSTREND_ID,(LPARAM)in,(WPARAM)out);
//本类中有消息注册的相应函数,执行
-> ON_MESSAGE(POMSG_BH5000_COMMON_VIBTRENDHIS_OFF_GETVIBCHANNSTREND_ID,DrawHisTrend)
-> LRESULT CDlgAxisPosition::DrawHisTrend( WPARAM wParam,LPARAM lParam )
//调用另外类的指定函数 
-> g_poAxisPosition->DrawHisTrend(lpIn,lpOut);


//****CAxisPositionPO.cpp
//函数被调用
-> void CAxisPositionPO::DrawHisTrend( ST_COMMON_OFF_GETVIBCHANNSTREND_IN * in_, ST_COMMON_OFF_GETVIBCHANNSTREND_OUT * out_ )
//调用另外类的指定函数 
-> m_dlgAxisPosition->RequestHisWaveData(loCurTime);


//***CDlgAxisPosition.cpp
//函数被调用
-> void CDlgAxisPosition::RequestHisWaveData( CBHDateTime dtTime_)
//向指定控件发送异步消息(寄存到消息队列立即返回)
-> g_poAxisPosition->PostPOMessage(POMSG_BH5000_COMMON_AXISTRACK_OFF_GETAXESTRACK_ID,(LPARAM)lpIn,(WPARAM)lpOut);


//****CAxisPositionPO.cpp
//注册消息被调用
-> ON_PO_MESSAGE(POMSG_BH5000_COMMON_AXISTRACK_OFF_GETAXESTRACK_ID,GetAxisHisWave)
-> void CAxisPositionPO::GetAxisHisWave( void *& data,LPARAM lParam, WPARAM wParam )
   GetAxisHisWave()---More()
   lpFixComm->CreateHead(SERVICE_SERVICE_OFF_GETAXESTRACK);//21008
   SERVICE_SERVICE_OFF_GETAXESTRACK通信中间件的消息头
//注册消息被调用
-> ON_PO_NOTIFY(POMSG_BH5000_COMMON_AXISTRACK_OFF_GETAXESTRACK_ID,DrawAxisHisWave)


//***CDlgAxisPosition.cpp
//注册消息
-> ON_MESSAGE(POMSG_BH5000_COMMON_AXISTRACK_OFF_GETAXESTRACK_ID,DrawHisAxisWave)
//执行注册消息
-> LRESULT CDlgAxisPosition::DrawHisAxisWave( WPARAM wParam,LPARAM lParam )
//函数调用
-> g_poAxisPosition->DrawAxisHisWave(lpIn,lpOut);


......end......

终极理解ON_MESSAGE和ON_NOTIFY,码迷,mamicode.com

终极理解ON_MESSAGE和ON_NOTIFY

标签:des   blog   ext   get   2014   404   http   com   line   数据   .net   

原文地址:http://blog.csdn.net/ghevinn/article/details/24791649

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!