如何获取窗口客户区的坐标

Jer*_*emy 12 c# winapi

我可以使用GetClientRect和GetWindowRect Win32调用获取windows整个区域的坐标,以及客户区的坐标.我的问题是GetClientRect总是返回左上角的0,0.如何确定实际客户区域相对于窗口rect的含义?

Ree*_*sey 17

您可以使用ClientToScreen获取屏幕坐标中左上角(0,0)点的坐标.GetClientRect返回的RECT适合您到右下角(只需添加到ClientToScreen设置的POINT).

  • 我不明白为什么这是一个可以接受的答案。这将相对于屏幕矩形映射客户端矩形。该问题要求相对于窗口矩形的客户端矩形(在 Win32 中,它是包含客户端矩形之外的所有窗口边框/修剪的矩形。) (2认同)

dth*_*rpe 5

使用ClientToScreen将客户端坐标转换为屏幕坐标.窗口rect(GetWindowRect)已经在屏幕坐标中,包括非客户区域(边框,标题等)