寻址(行、列、位置)
HACL 提供两种在主机表示空间中对点(字符位置)进行寻址的方法。应用程序可以按行号/列号或单个线性位置值来进行字符寻址。无论使用哪种寻址方案,表示空间寻址始终基于 1(而不是从零开始)。
行/列寻址方案对于与主机数据的物理屏幕显示直接相关的应用程序非常有用。矩形坐标系(第 1 行第 1 列位于左上角)是在屏幕上对点进行寻址的自然方式。线性位置寻址方法(位置 1 位于左上角,从左到右,从上到下)对于将整个表示空间作为单个数据元素数组查看的应用程序非常有用,对于从使用此寻址方案的 EHLLAPI 接口移植的应用程序也非常有用。
在 C++ 层,通过为相同的方法调用不同的签名来选择不同的寻址方案。例如,要将主机光标移到给定的屏幕坐标,应用程序可以通过以下两个签名之一调用 ECLPS::SetCursorPos 方法:
PSObj->SetCusorPos(81);
PSObj->SetCursorPos(2, 1);如果将主机屏幕配置为每行 80 列,则这些语句具有相同的效果。此示例还指出了寻址方案的细微差别。如果应用程序对表示空间的每行字符数作出假设,线性位置方法可能会产生意外的结果。例如,示例中的第一行代码将光标放在为 132 列配置的表示空间中第 1 行的第 81 列。第二行代码会将光标置于第 2 行第 1 列,而不管表示空间的配置如何。
注: 某些 HACL 层可能仅公开一个编址方案。