📄 屏幕坐标系和窗口客户区坐标系的区别.txt
字号:
屏 幕 坐 标 系 和 窗 口 客 户 区 坐 标 系 最 明 显 的 区 别 在 于 坐 标 原 点 , 屏 幕 坐 标 系 的 坐 标 原 点 在 整 个 屏 幕 的 左 上 角 , 而 窗 口 客 户 区 坐 标 系 的 坐 标 原 点 在 窗 口 客 户 区 的 左 上 角 , 通 常 这 两 个 点 是 不 重 合 的 。 要 回 答 你 的 第 一 个 问 题 , 首 先 需 要 明 确 ClientToScreen函 数 的 第 一 个 参 数 是 谁 的 句 柄 。 对 于 你 这 个 例 子 , 这 个 参 数 是 Ctl.hWnd, 也 就 是 说 是 控 件 的 句 柄 , 就 是 Command控 件 的 句 柄 。 如 果 按 照 Command控 件 的 坐 标 系 说 , 左 上 角 当 然 是 (0, 0), 所 以 原 函 数 是 正 确 的 。 而 你 说 的 “ 左 上 角 的 坐 标 值 ” 大 概 是 以 窗 口 客 户 区 为 坐 标 系 了 , 当 然 , 如 果 采 用 窗 口 客 户 区 为 坐 标 系 的 话 , 就 需 要 修 改 ClientToScreen函 数 的 第 一 个 参 数 为 窗 口 的 句 柄 了 。
大 多 数 API函 数 默 认 的 单 位 是 像 素 值 。 你 可 以 使 用 Screen.TwipsPerPixelX和 Screen.TwipsPerPixelY, 进 行 缇 和 像 素 的 转 换 , 在 你 的 这 个 函 数 中 , 前 两 种 情 况 都 进 行 了 这 样 的 转 换 。
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -