在工具栏按钮按右键发送什么消息?

解决方案 »

  1.   

    不对吧,是CToolBar接收WM_RBUTTONDOWN。
    可是我要分别处理不同按钮的右键怎么办?
      

  2.   

    定义一个成员变量BOOL InMouse初始化时值为FALSECXxx::CXxx()
    {
      // 在构造函数中初始化变量
      // m_InMouse = FALSE;
    }
    void CXxx::OnMouseMove(UINT nFlags, CPoint point)
    {
       CRect rect;
       m_toolbar.GetWindowRect(&rect);  // 得到工具条的矩形区域
       if(rect.PtInRect(point))
       {
          m_InMouse = TRUE;
       }
       else
       {
          m_InMouse = FALSE;
       }
    }void CXxx::OnRbuttonUp(UINT nFlags, CPoint point)
    {
       if(m_InMouse)
       {
        // To do some thing...
       }
    }
      

  3.   

    上面的是两个鼠标消息分别是WM_MOUSEMOVE和WM_NCRBUTTONUP如果你一定要在触发这个事件的时候发出一个消息你可以自定义一个消息
    #define WM_TOOLBARNCBUTTONUP (WM_USER + 100)...void CXxx::OnRbuttonUp(UINT nFlags, CPoint point)
    {
       if(m_InMouse)
       {
           // 触发事件的时候发送自定义消息
           SendMessage(WM_TOOLBARNCBUTTONUP);
       }
    }