?
Hi klass!,
ich glaube du hast dich von der Funktion mouse_event a bisserl verwirren lassen.
Diese Funktion liefert dir nämlich nicht den Zustand (ob eine gewisse Maustaste gedrückt ist oder nicht), sondern sie simuliert dasjenige Ereignis.
Wenn du also der Funktion MOUSEEVENTF_LEFTDOWN übergibst, so simulierst du damit Windows, dass die linke Maustaste gedrückt wurde ! keybd_event macht Ähnliches für die Tastatur. (Nur mal so nebenbei bemerkt)
Um den Zustand der Tastatur oder Maus abzufragen, also ob eine bestimmte Taste gedrückt wird, nimmst du ganz einfach die Funktion GetAsyncKeyState her (GetKeyState gibts auch noch, aber da musst du dann über PeekMessage und Co erst mal deine Nachrichtenwarteschlange checken - also ich persönlich würde da GetAsyncKeyState vorziehen).
Geht also wie folgt:
while (GetAsyncKeyState (VK_LBUTTON))
{
//Mache dies und das
}
Ich weiß ja nicht, welchen Typ von Anwendung du erstellt hast.
GetAsyncKeyState liefert dir den Zustand der Maus systemweit also no problem.
Wenn du aber eine Fensteranwendung erstellt hast mit Nachrichtenwarteschlange und du willst den Zustand der Maus nur im Bereich deines eigens erstellten Fensters überprüfen, so gäbe es da noch "bessere" Möglichkeiten um das ganze zu bewerkstelligen, da dann GetAsyncKeyState meiner Meinung nach eher die Dirty-Version darstellt. Aber egal - damit funktionierts auf jeden Fall.
Greetings, Xzi-bit und an guten Rutsch :xmas1: