В моем view есть tree и list контролы, разделенный сплиттером:
m_ctrlVSplitter.Create(m_hWnd, rcDefault, NULL, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN);
m_ctrlVSplitter.SetSplitterExtendedStyle(0);
// создание ListView
m_lv.Create(m_ctrlVSplitter, rcDefault, 0, WS_CHILD|WS_VISIBLE|LVS_REPORT|WS_CLIPSIBLINGS|WS_CLIPCHILDREN, 0, IDC_LST);
m_tv.Create(m_ctrlVSplitter, rcDefault, 0, TVS_SHOWSELALWAYS | TVS_HASBUTTONS | TVS_LINESATROOT
| TVS_HASLINES | TVS_EDITLABELS|TVS_SHOWSELALWAYS
| TVS_DISABLEDRAGDROP | WS_CHILD | WS_VISIBLE, 0, IDC_TREE);
m_ctrlVSplitter.SetSplitterPanes(m_lv, m_tv);
И обработчик WM_CONTEXTMENU:
LRESULT OnContextMenu(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
int b = m_ctrlVSplitter.GetActivePane();
if (b)
{ ::MessageBox(0, _T("OnContextMenu::Tree"), _T(""), 0);
}
else
{ ::MessageBox(0, _T("OnContextMenu::List"), _T(""), 0);
}
return 0;
}
Хотелось бы отследить "правый" клик на самом сплиттере (когда курсор меняется на "стрелочки") и ничего не делать в этом случае.
Извлечь координаты из lParam и проверка их на вхождение в прямоугольник сплиттера не работает