Client rectangle coordinates on screen
browser, c++, plugins, winapi
Solution
Yes, you can do this with the `ClientToScreen` function:
RECT rc;
GetClientRect(hWnd, &rc); // get client coords
ClientToScreen(hWnd, reinterpret_cast<POINT*>(&rc.left)); // convert top-left
ClientToScreen(hWnd, reinterpret_cast<POINT*>(&rc.right)); // convert bottom-right
What is the "client" rectangle in a browser depends on the browser implementation. You can use Spy++ to discover this for yourself.
Problem
How can I get coordinates of a window's client area relative to screen? I thought about using `GetClientRect` and `ClientToScreen`. Also, in a browser window what is `ClientRect`? Only rectangle with `HTML` document shown in it, or it includes browser bars and pop-up menus, that can possibly shrink dimension for `HTML` doc? I've tried this: ``` HWND hWnd; RECT rc; if (GetClientRect(hWnd, &rc)) // get client coords { MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc), 2); // converts rect rc points return rc.top; } ``` But the sad thing is that browser's client rectangle includes all those pop-up browser menus and bars, therefore can't be used to detect accurate coordinates of browsers HTML document space. If anyone got suggestions how it can be done, will try it gladly.