Rechts- und Linksklick abfangen
-
Hi Leute!
Ich muss in einem Dialog den rechts und linksklick auf ein editfeld abfangen. Ich bin noch recht neu in der MFC und weis bisher nicht wie ich das mache. Über das Menü wo ich die Nachrichtenbehandlung über den Assistenten mache habe ich bisher dafür noch nichts gefunden.
Ich wär euch für eine schnelle und ausführliche Erklärung wirklich sehr dankbar!!bye
angel84
-
ein eigene Klasse von CEdit ableiten und Messagehandler überschreiben....
-
Hier etwas Sourcecode:
// headerfile #ifndef _MYEDITBOX_H_ #define _MYEDITBOX_H_ class CMyEditBox : public CEdit { public: CMyEditBox() : CEdit() {} virtual ~CMyEditBox() {} afx_msg void OnLButtonDown( UINT, CPoint ); afx_msg void OnRButtonDown( UINT, CPoint ); DECLARE_MESSAGE_MAP() }; #endif // implementation #include "stdafx.h" #include "DeinDialog.h" #include "MyEditBox.h" BEGIN_MESSAGE_MAP(CMyEditBox,CEdit) ON_WM_LBUTTONDOWN() ON_WM_RBUTTONDOWN() END_MESSAGE_MAP() afx_msg void CMyEditBox::OnLButtonDown( UINT, CPoint ) { AfxMessageBox("Linke Maustaste"); } afx_msg void CMyEditBox::OnRButtonDown( UINT, CPoint ) { AfxMessageBox("Rechte Maustaste"); }
Jetzt brauchst du nur noch deinem Edit Feld eine Variable vom Typ "Control" zuweisen (sollte normalerweise CEdit sein)
anschliessend in deiner DialogKlasse den Variablentyp dieser Variable von "CEdit" auf "CMyEditBox" ändern und es funzt !
Du wirst nach einem Klick auf die Editbox eine Messagebox erhalten, welche dir sagt, welch mausbutton gedrpckt wurde !
-
danke, werd ich gleich mal testen!