OnButtonDown
-
Hallo liebe Leute,
ich würde ganz gerne das Ereigniss OnButtonDown/Up auswerten. Ist das im VC6 überhaupt möglich ?
Über die Funktion WM_LBUTTONDOWN (oder so ähnlich) kann ich die linke Maustaste abfangen. In dieser Funktion kann ich eine x/y-Position angeben. Muss ich dann genau auf dieser Position stehen damit das Ereignis ausgelöst wird ?
Hat jemand damit Erfahrung ??
Besten Dank im Voraus !
levin
-
Ich glaube du hast nicht ganz das Prinzip der MFC verstanden.
Mit OnLButtonDown kannst du lediglich auf einen Mausklick (des Users) reagieren.Devil
-
Ganz genau !
und über CPoint ist es möglich einen Punkt/Bereich? einzustellen !
da ich aber mindestens 4 Positionen brauche ist mir nicht klar wie das funzen könnte!
levin
-
Ne, ne...
Die Punktkoordinaten wo der User "geklickt" hat werden übergeben!
D.h. dass du innerhalb der Funktion nur eine Auswertung der Koordinaten vornehmen mußt...[ Dieser Beitrag wurde am 07.05.2003 um 09:12 Uhr von Hexagon editiert. ]
-
Genau so könnte es gehen !!
Besten Dank !
Levin
-
Schade!
Die Position der Maus wird nur ausgegeben wenn man in eine "freie" Fläche des Dialogs klickt.Klicke ich auf einen Button funktioniert es nicht !
Was eigentlich auch logisch ist !
ich werde als nächstes versuchen ein ActiveX in Borland zu erstellen!!
Wenn noch jemand eine andere Idee hat nur raus damit !
Bis auf weiteres
levin
-
Und wenn du in OnButtonDown dir die aktuelle Mausposition holst (vorausgesetzt, der Button wird mit der Maus gedrückt)
Roland
-
Hallo Levin,
Du kannst einen Mausklick über einem Dialog-Item über PreTranslateMessage abfangen. Das geht so:
BOOL MyDlg::PreTranslateMessage(MSG* pMsg)
{
// Message WM_LBUTTONDOWN wurde ausgeloesst
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hBtnWnd;
GetDlgItem(IDC_MYITEM, &hBtnWnd);// über dem Item mit der ID IDC_MYITEM
if (pMsg->hwnd == hBtnWnd)
{
// was immer du hier tun willst
}
}return CDialog::PreTranslateMessage(pMsg);
}Gruss
Andrea
-
Vom Ansatz her schon super .... aber!
Folgende Effekte treten auf:1. der Button wird ohne Mausklick sofort gedrückt wenn man mit dem Cursor über den Button fährt
2. das Ereignis WM_LBUTTONDOWN wird im ganzen Dialog ausgelöst und ist somit nicht über if an den Button gebunden !
ich werde weiter versuchne den Lösungsanstz auszubauen !
levin
-
Falls du auf den Klick auf den Button reagieren willst, reicht ein einfacher
Doppelklick im Dialogeditor auf den Button...Devil
-
Nein das Problem ist etwas schwieriger...
Ich möchte einen Taster nachbilden, und brauche das Ereignis OnButtonDown und OnButtonUp um in eine Maschinensteuerun 1/0 zu schreiben.
Diese Ereignisse gibt ja so im Klassenassi nicht (leider!), zumindest nicht VC6.Deswegen war mein Gedanke die linke Maustaste für diese Zwecke zu gebrauchen !!
levin