在主桢窗口里重载了BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) 函数
if(pMsg->message==WM_RBUTTONDOWN)
{
     怎么判断这个WM_RBUTTONDOWN是在列表视的列表框里发生的???
}

解决方案 »

  1.   

    CRect rect;
    CPoint point;
    pListBox->GetWindowRect(rect);
    ::GetCursorPos(&point);
    if (rect.PtInRect(point))//如果point在listbox框的区域里面
             {
             }
      

  2.   

    现在可以判断WM_RBUTTONDOWN是在列表视的列表框里发生的了,但是我用
    menu.AppendMenu(MF_STRING|MF_GRAYED,ID_MODIFYRECORD,"修改记录");
    MF_GRAYED没有起作用~!~~!!~!!~~!!~!!!!!!
    菜单是在主桢窗口里建的,要响应的是在列表视里~!~!~!~!~
      

  3.   

    如果用pWnd->OnCmdMsg(ID_MODIFYRECORD, 0, NULL, NULL);
    那么怎么判断菜单
    menu.AppendMenu(MF_STRING|MF_GRAYED,ID_MODIFYRECORD,"修改记录");
    被点选了呢,然后再pWnd->OnCmdMsg(ID_MODIFYRECORD, 0, NULL, NULL);来响应