在一个对话框中,我们可以用ON_UPDATE_COMMAND_UI对要update的控件进行修改。
如:
void CROISetingDialog::OnUpdateShowroi(CCmdUI *pCmdUI)
{
    if( -1 == m_visionimage->m_DisplayROI )
   {
pCmdUI->SetCheck(1);
   }
   else
   {
pCmdUI->SetCheck(0);
   }
}但是,当我在这个对话框中重载了OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
这函数后,我就得不到这个消息响应了
我知道,
可以用if (message == WM_COMMAND)得到命令消息
或    if (message == WM_NOTIFY )得到通告消息
但是:命令更新这个消息ON_UPDATE_COMMAND_UI如何响应呢?请各位大虾帮帮忙把
谢谢啦

解决方案 »

  1.   

    重载OnCmdMsg,然后在nCode == CN_UPDATE_COMMAND_UI时调用基类的OnCmdMsg
      

  2.   

    命令更新实际上是WM_COMMAND命令消息的一种,wParam通知码不同而已
      

  3.   

    楼上这位大虾
    能否说的具体些呢?
    nCode是什么啊?
    message or LOWORD(wParam),LOWORD(wParam)好像对应的是控件的ID号哦
    在nCode == ON_UPDATE_COMMAND_UI时调用基类的OnCmdMsg是如何具体做啊?
    谢谢具体说下好吗?
    我是想和要控制的一个Eidt对话框关联上。
    非常感激拉
      

  4.   

    楼上的大虾
    我这才注意到,你是要我重载OnCmdMsg这函数,但是,我已经重载了OnWndMsg,再重载这个函数会不会有什么影响啊,消息的流动方向是不是,先进入OnWndMsg,再进入OnCmdMsg阿?
      

  5.   

    楼上的大虾
    我重载了OnCmdMsg函数,但是
    nCode == CN_UPDATE_COMMAND_UI没有得到哦?
    是不是因为重载了OnWndMsg的原因阿?
    有谁能帮我解答一下啊
    OnWndMsg and OnCmdMsg关系是什么啊
    谢谢