工具栏上有个DropDown菜单,当打开该菜单时候,如果规定时间内用户还没有选择菜单,怎样自动关闭该菜单?我尝试给工具栏发个鼠标按下事件,但是不起作用,我的下拉菜单不是成员对象,临时TrackPopupMenu出来的。

解决方案 »

  1.   

    最好就是建一个全局的CMenu变量
      

  2.   

    void   CMainFrame::ShowCaptionMenu(BOOL   bShow)  
      {  
      static   HMENU   hMenu=NULL;  
      if   (hMenu   ==   NULL){  
      hMenu=::GetMenu(this->GetSafeHwnd());  
      }  
      if(bShow){  
      ::SetMenu(this->GetSafeHwnd(),hMenu);  
      this->ModifyStyle(0,WS_CAPTION,SWP_FRAMECHANGED);  
      }else{  
      ::SetMenu(this->GetSafeHwnd(),NULL);  
      this->ModifyStyle(WS_CAPTION,0,SWP_FRAMECHANGED);  
      }  
      }  
       
      调用:  
      this->ShowCaptionMenu(FALSE);   
       
      this->ShowCaptionMenu(TRUE);   
    在定时器中检查,满足条件调用ShowCaptionMenu(FALSE)隐藏菜单