мне нужно переопределить событие WM_LBUTTONUP класса CMFCRibbonSliderVisual C++ Как переопределить обработчик событий класса-участника?
class CMyRibbonSlider : public CMFCRibbonSlider
{
public:
virtual void OnLButtonUp(CPoint point); // need this event handler!
};
void CMyRibbonSlider::OnLButtonUp(CPoint point)
{
AfxMessageBox(_T("Works!"))
return;
}
объект Использование CMyRibbonSlider в классе MainFrame
class CMainFrame : public CMDIFrameWndEx
{
....
CMyRibbonSlider* SliderLine;
}
Когда управление CMFCRibbonSlider apears и я нажать левую кнопку мыши, ничего не происходит. Что я делаю неправильно?
EDIT:
инициализации
CArray<CMFCRibbonBaseElement*, CMFCRibbonBaseElement*> ar;
m_wndRibbonBar.GetElementsByID(ID_SLIDER2, RibbonElementsArray);
m_wndRibbonBar.GetElementsByID(ID_START_BTN, ar);
RibbonElementsArray.Append(ar);
m_wndRibbonBar.GetElementsByID(ID_STOP_BTN, ar);
RibbonElementsArray.Append(ar);
m_wndRibbonBar.GetElementsByID(ID_SLIDER_LINE, ar); //HERE!
RibbonElementsArray.Append(ar);
m_wndRibbonBar.GetElementsByID(IDC_STATIC_TT, ar);
RibbonElementsArray.Append(ar);
Slider = DYNAMIC_DOWNCAST(CMFCRibbonSlider, RibbonElementsArray[0]);
btnStart = DYNAMIC_DOWNCAST(CMFCRibbonButton, RibbonElementsArray[1]);
btnStop = DYNAMIC_DOWNCAST(CMFCRibbonButton, RibbonElementsArray[2]);
SliderLine = (CMyRibbonSlider*)DYNAMIC_DOWNCAST(CMFCRibbonSlider, RibbonElementsArray[3]); //and HERE!
TmpLable = DYNAMIC_DOWNCAST(CMFCRibbonLabel, RibbonElementsArray[4]);
также у меня есть эти обработчики событий в классе мэйнфреймов и они работают:
ON_UPDATE_COMMAND_UI(ID_SLIDER_LINE, &CMainFrame::OnUpdateSliderLine)
ON_COMMAND(ID_SLIDER_LINE, &CMainFrame::OnSliderLine)
SliderLine-> GetPos() также возвращает правый бегунок позиция, поэтому я думаю, что инициализация правильная ...
'CMyRibbonSlider * SliderLine;' - это все? Только указатель? – mvidelgauz
Код требует немного больше контекста. Поскольку вы говорите, что отображается элемент управления CMyRibbonSlider, вы не можете просто указатель на него. Его также нужно построить в какой-то момент. Этот код важен, как и ваша [карта сообщений] (https://msdn.microsoft.com/en-us/library/0x0cx6b1.aspx). – IInspectable
Конечно, это не только указатель. Я добавил код. –