J'ai besoin de passer outre l'événement WM_LBUTTONUP de CMFCRibbonSlider classeVisual C++ Comment remplacer le gestionnaire d'événements de la classe parant?
class CMyRibbonSlider : public CMFCRibbonSlider
{
public:
virtual void OnLButtonUp(CPoint point); // need this event handler!
};
void CMyRibbonSlider::OnLButtonUp(CPoint point)
{
AfxMessageBox(_T("Works!"))
return;
}
Utilisation d'objets CMyRibbonSlider en classe MainFrame
class CMainFrame : public CMDIFrameWndEx
{
....
CMyRibbonSlider* SliderLine;
}
Lorsque le contrôle CMFCRibbonSlider apears et je clique gauche mousebutton, rien ne se passe. Qu'est-ce que je fais de mal?
EDIT:
initialisation
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]);
J'ai aussi ces gestionnaires d'événements en classe Mainframe et ils travaillent:
ON_UPDATE_COMMAND_UI(ID_SLIDER_LINE, &CMainFrame::OnUpdateSliderLine)
ON_COMMAND(ID_SLIDER_LINE, &CMainFrame::OnSliderLine)
SliderLine-> getPos() retourne également curseur à droite position, donc je pense que l'initialisation est juste ...
'CMyRibbonSlider * SliderLine;' - c'est tout? Seul pointeur? – mvidelgauz
Le code a besoin d'un peu plus de contexte. Puisque vous dites que le contrôle 'CMyRibbonSlider' apparaît, vous ne pouvez pas avoir un pointeur dessus. Il doit également être construit à un moment donné. Ce code est important, tout comme votre [plan du message] (https://msdn.microsoft.com/fr-fr/library/0x0cx6b1.aspx). – IInspectable
Bien sûr, ce n'est pas seulement un pointeur. J'ai ajouté du code. –