为了菜单变灰的问题我查看了以前的解答

void XX::OnUpdateCommandUIxxx(CCmdUI *pCmdUI)
{
pCmdUI->Enable(BOOL/FALSE);
}
可以实现.
请问,我调用这个函数时,这个*pCmdUI是东西?

解决方案 »

  1.   

    你要听详细的解释吗?
    我怕你听了不想在学vc了
    知道为什么之后感觉ms那些人真是天才啊#define ON_UPDATE_COMMAND_UI(id, memberFxn) \
    { WM_COMMAND, CN_UPDATE_COMMAND_UI, (WORD)id, (WORD)id, AfxSig_cmdui, \
    (AFX_PMSG)(void (AFX_MSG_CALL CCmdTarget::*)(CCmdUI*))&memberFxn },然后在pCmdUI.DoUpdate里面消息遍历调用memberFxn,然后传给memberFxn一个参数this来
      

  2.   

    有这么麻烦吗?我只是想知道在程序中定义了这个函数
    void XX::OnUpdateCommandUIxxx(CCmdUI *pCmdUI)
    {
    pCmdUI->Enable(BOOL/FALSE);
    }在其他地方我想调用他时总归是参数=??           这里的??到底怎么写OnUpdateCommandUIxxx(参数)
      

  3.   

    CCmdUI就是处理CMenu等UI控件的Command的类,如让radio选上,让check选上等等
      

  4.   

    如果不是特别特别需要的话,这个函数还是不要自己调用的好,可以这样用
    BOOL bISen;
    void XX::OnUpdateCommandUIxxx(CCmdUI *pCmdUI)
    {
                 pCmdUI->Enable(bISen);
    }
    在你需要的使用,菜单变灰的地方,令,bISen = FALSE;
    就可以了。