Ich brauche Ereignis WM_LBUTTONUP von CMFCRibbonSlider KlasseVisual C++ Wie Überschreiben Ereignishandler der Parant-Klasse?
class CMyRibbonSlider : public CMFCRibbonSlider
{
public:
virtual void OnLButtonUp(CPoint point); // need this event handler!
};
void CMyRibbonSlider::OnLButtonUp(CPoint point)
{
AfxMessageBox(_T("Works!"))
return;
}
Verwenden CMyRibbonSlider Objekt in Mainframe-Klasse
class CMainFrame : public CMDIFrameWndEx
{
....
CMyRibbonSlider* SliderLine;
}
Wenn CMFCRibbonSlider Kontrolle apears und ich Maustaste klicken Sie links außer Kraft zu setzen, passiert nichts. Was mache ich falsch?
EDIT:
Initialisierung
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]);
auch habe ich diese Event-Handler in Mainframe-Klasse und sie arbeiten:
ON_UPDATE_COMMAND_UI(ID_SLIDER_LINE, &CMainFrame::OnUpdateSliderLine)
ON_COMMAND(ID_SLIDER_LINE, &CMainFrame::OnSliderLine)
SliderLine-> GetPos() auch mit der rechten Schieber zurück Position, so denke ich, Initialisierung ist richtig ...
'CMyRibbonSlider * SliderLine;' - das ist alles? Nur Zeiger? – mvidelgauz
Der Code benötigt ein wenig mehr Kontext. Da Sie sagen, dass das 'CMyRibbonSlider'-Steuerelement angezeigt wird, können Sie nicht einfach einen Zeiger darauf haben. Es muss auch irgendwann konstruiert werden. Dieser Code ist wichtig, ebenso wie Ihre [Nachrichtenzuordnung] (https://msdn.microsoft.com/en-us/library/0x0cx6b1.aspx). – IInspectable
Natürlich ist es nicht nur ein Zeiger. Ich habe etwas Code hinzugefügt. –