码龄10年 暂无认证

34121
访问
1
等级

8
获赞
3
评论

最新评论

  • 20240228阿⑤

    积分乍获得

  • 20231124ziher

    666

  • 20230909八月老师

    什麼時候發佈易語言支持庫呢

一.窗口坐标与屏幕坐标

Heart 2023-04-25 09:20:14 发布 1302

分类专栏: 开发话题 文章标签: C C++ WIN32 窗口坐标 屏幕坐标

一.坐标概念

1.窗口坐标

Windows 窗体的坐标系基于设备坐标,在 Windows 窗体中绘制时的基本量度单位是设备单位(通常为像素)。 

屏幕上的点通过 x 和 y 坐标对描述,x 坐标向右递增,y 坐标从上往下递增。 原点相对于屏幕的位置因指定的是屏幕坐标还是工作区坐标而异。

2.屏幕坐标

Windows 窗体应用程序用屏幕坐标指定窗口在屏幕上的位置。 对于屏幕坐标而言,原点是屏幕的左上角。 

窗口的完整位置通常用 Rectangle 结构来描述,该结构包含定义窗口的左上角和右下角的两个点的屏幕坐标。

二. 获取窗口坐标和屏幕坐标

指定的窗口大小为600*500

除去左右下的边框

标题栏+客户区大小为592 * 469

1.客户区坐标

RECT rc;
GetClientRect(hwnd, &rc);

2.屏幕坐标

RECT rc1;
GetWindowRect(hwnd, &rc1);

3.坐标之间的转换

ClientToScreen

RECT rc;
POINT pi;
GetClientRect(hwnd, &rc);
pi.x = rc.left;
pi.y = rc.top;
ClientToScreen(hwnd, &pi);

ScreenToClient

RECT rc1;
POINT pi1;
GetWindowRect(hwnd, &rc1);
pi1.x = rc1.right;
pi1.y = rc1.bottom;
ScreenToClient(hwnd, &pi1);

系统管理后台 · 迪大.png


Heart1
0 0 上传作业
X
    网友评论 0条评论 0人参与
    请登陆会员1

    表情

    评论列表

×