Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.
ScreenToClient (user32)
.
C# Signature:
[DllImport("user32.dll")]
static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);
VB Signature:
<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function ScreenToClient(ByVal hWnd As IntPtr, ByRef lpPoint As POINT) As Boolean
'
End Function
/** Getting a windows position **/
GetWindowRect(hWnd, out rct);
/** assign RECT coods to POINT **/
topLeft.X = rct.Left;
topLeft.Y = rct.Top;
bottomRight.X = rct.Right;
bottomRight.Y = rct.Bottom;
/** this takes the POINT, which is using screen coords (0,0 in top left screen) and converts them into coords inside specified window (0,0 from top left of hWnd) **/
ScreenToClient(hWnd, ref topLeft);
ScreenToClient(hWnd, ref bottomRight);
int width = topLeft.X + bottomRight.X;
int height = topLeft.Y + bottomRight.Y;
Rectangle R = new Rectangle(topLeft.X, topLeft.Y, width, height);
WARNING
The last bit of the above example is incorrect. The correct client left/top will be retrieved but the width/height will be inaccurate. This function reports the distance of any given screen coordinates from the origin of our hwnd's ClientRect. In this way it allows us to deduce the location of the ClientRect origin given any other point. In does NOT allow us to deduce the location of the bottom/right point of the ClientRect. What the above example does is confusedly deduce the distance from the ClientRect origin to the WindowRect bottom/right. This will not give the accurate height and width since the WindowRect bottom/right will be further out than the yet unknown ClientRect. (They are not the same, unlike the origins.) The proper way to use this is to make only the first call to ScreenToClient and then call GetClientRect to retrieve the ClientRect dimensions once the origin is known.
The ScreenToClient function converts the screen coordinates of a specified point on the screen to client-area coordinates.
1/23/2017 10:40:22 AM - sh0ber@Stack Overflow-24.127.131.201
The POINT structure defines the x- and y-coordinates of a point.
9/24/2022 6:08:15 AM - -93.99.148.7
The ScreenToClient function converts the screen coordinates of a specified point on the screen to client-area coordinates.
1/23/2017 10:40:22 AM - sh0ber@Stack Overflow-24.127.131.201
The ScreenToClient function converts the screen coordinates of a specified point on the screen to client-area coordinates.
1/23/2017 10:40:22 AM - sh0ber@Stack Overflow-24.127.131.201
The GetClientRect API
12/5/2014 9:39:46 AM - -67.168.27.157
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).