The GetFocus function retrieves the handle of the window that has the keyboard focus, if the window is associated with the calling thread’s message queue.
HWND GetFocus(VOID)
This function has no parameters.
The return value is the handle of the window with the keyboard focus. If the calling thread’s message queue does not have an associated window with the keyboard focus, the return value is NULL.
Even if GetFocus returns NULL, another thread’s queue may be associated with a window that has the keyboard focus.
Use the GetForegroundWindow function to retrieve the handle to the window with which the user is currently working. You can associate your thread’s message queue with the windows owned by another thread by using the AttachThreadInput function.
AttachThreadInput, GetForegroundWindow, SetFocus, WM_KILLFOCUS, WM_SETFOCUS