Mouse move

Tags:    c++

Hej er der nogle der ved hvordan jeg i mit c++ program når musen bliver flyttet bare lidt så smider den musens kordinator i 2 variabler??? nogle der ved det??? altså så snart jeg bevæger musen bare så putter den kordinatorne i variabler f.eks to int som hedder x og y???



Hvis du udvikler til Windows, så kan du benytte WM_MOUSEMOVE, som bliver postet til din WindowProc, når markøren flyttes.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/mouseinput/mouseinputreference/mouseinputmessages/wm_mousemove.asp

Som det kan ses, så vil de første 16 bit af lParam indeholde x-værdien og de resterende 16 bit vil indeholde y-værdien af markørens position.

1101110100010110000101000001

Killers don't end up in jail - they end up on a high-score!



Okay men jeg får disse fejl i min kode:
C:\\BORLAND\\BCC55\\BIN>makeobj test
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.cpp:
Error E2268 test.cpp 94: Call to undefined function 'GET_X_LPARAM' in function _
_stdcall MainWndProc(HWND__ *,unsigned int,unsigned int,long)
Error E2268 test.cpp 95: Call to undefined function 'GET_Y_LPARAM' in function _
_stdcall MainWndProc(HWND__ *,unsigned int,unsigned int,long)
*** 2 errors in Compile ***

kode
Fold kodeboks ind/udKode 




Prøv med:

xPos = LOWORD(lParam);
yPos = HIWORD(lParam);



Ok tak nu virker det men hvad gør LOWORD og HIWORD??? og en ting til ved i hvordan jeg fjerner den normale windows makør i programmet sådan at man kun kan se det billede der følger efter musen???



lParam er en 32 bit integer (heltal) 32 bit svarer til 4 byte.
LOWORD tager værdien af de to nederste bytes (16 bit), HIWORD tager værdien af de to øverste byte.

Jeg forstår ikke rigtigt dit andet spørgsmål.



Det jeg har lavet er et program der loader et bitmap billede som så er en tegning af et sigtekorn! Så har i lige hjulpet mig med at lave sådan at hver gang man bevæger musen bliver musens kordinator smit i nogle variabler og billedet med sigtekornet bliver opdateret så det hele tiden følger med musen! Men problemet er at samtidig er den normale windows makør oven på så det ser lidt dumt ud! så mit spørgsmål er kan jeg fjerne makøren så den ikke vises i mit program altså at der slet ikke er nogen makør i det program jeg har lavet undtagen den makør jeg lige selv har lavet med et bitmap billede!

min kode
Fold kodeboks ind/udKode 




Du kunne prøve med:
SetCursor(0);

Normalt bruger man den med et cursor image.
Det var måske bedre at lave din bitmap som en cursor, det vil give mindre flimmer.



t