希望能触发父窗口的左键按下消息函数,右键按下消息函数

解决方案 »

  1.   

    在父窗口的PreTranslateMessage里处理
      

  2.   

    子分类subclass控件,重定义控件的鼠标消息,交由父窗口处理。我不明白://希望能触发父窗口的左键按下消息函数,右键按下消息函数这话是什么意思?
      

  3.   

    iswjh(哪天我才会Turbo C):
    我不明白://希望能触发父窗口的左键按下消息函数,右键按下消息函数这话是什么意思?
    ============================================================
    就是鼠标在控件上的点击消息,交由父窗口(OnLButtonDown,OnLButtonUp等)来处理
      

  4.   

    消息实际上是先传到父窗口,在父窗口的PreTranslateMessage里处理就行了
    CMyDialog::PreTranslateMessage(MSG* pMsg)
    {
        if(pMsg->hwnd == this->GetDlgItem(IDC_YOURCONTROL)->GetSafeHwnd()
           &&(pMsg->message == WM_RBUTTONDOWN||pMsg->message == WM_LBUTTONDOWN))
          {
              //在这样里处理
              AfxMessageBox("123");
          }
        return CDialog::PreTranslateMessage(pMsg); 
    }
      

  5.   

    BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_RBUTTONDOWN||pMsg->message == WM_LBUTTONDOWN)
    {
    //此处将WM_RBUTTONDOWN和WM_LBUTTONDOWN消息重新发送给父窗口
    return SendMessage( pMsg->message , pMsg->wParam, pMsg->lParam ); 
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
    也可以直接在PreTranslateMessage里处理,但不够好,建议用上面的方法