Home > Software design >  In WinAPI, how do I know when the mouse has moved outside the current window?
In WinAPI, how do I know when the mouse has moved outside the current window?

Time:02-11

Basically, I want to write a program that shows in a small window the color of the pixel currently pointed by the mouse cursor.

Of course, I could poll the mouse cursor position once in a while, but I would like to opt to a mechanism that calls my code when the mouse cursor has moved, regardless whether it's pointing the current window or not.

Is there some WinAPI trickery that could achieve that functionality?

CodePudding user response:

After some search, I found this:

HHOOK mouseHook = 
    SetWindowsHookExA(
        WH_MOUSE_LL, 
        LowLevelMouseProc,
        hInstance, 
        0);

...

LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (wParam == WM_MOUSEMOVE) {
        // Notify me.
    }

    return 0;
}
  • Related