屏幕规格
由函数 TerminalInfoInteger 提供的若干特性涉及计算机的视频子系统。
标识符 |
说明 |
---|---|
TERMINAL_SCREEN_DPI |
屏幕输出信息的分辨率以每线性英寸点数(DPI,每英寸点数)计量 |
TERMINAL_SCREEN_LEFT |
虚拟屏幕左坐标 |
TERMINAL_SCREEN_TOP |
虚拟屏幕上坐标 |
TERMINAL_SCREEN_WIDTH |
虚拟屏幕宽度 |
TERMINAL_SCREEN_HEIGHT |
虚拟屏幕高度 |
TERMINAL_LEFT |
相对于虚拟屏幕的终端左坐标 |
TERMINAL_TOP |
相对于虚拟屏幕的终端上坐标 |
TERMINAL_RIGHT |
相对于虚拟屏幕的终端右坐标 |
TERMINAL_BOTTOM |
相对于虚拟屏幕的终端下坐标 |
知道 TERMINAL_SCREEN_DPI 参数后,你可以设置 图形对象 的尺寸,以便这些图形对象在不同分辨率的显示器保持一致外观。例如,如果你想创建一个视觉大小为 X 厘米的按钮,则可以使用以下函数以屏幕点数(像素数)指定:
int cm2pixels(const double x)
|
虚拟屏幕是所有显示器的边界框。如果系统中有多个显示器,并且排列顺序不同,严格从左到右,则虚拟屏幕的左坐标可能是负值,而中间(参考点)将处于两个显示器的边框上(位于主显示器的左上角)。
多显示器虚拟屏幕
如果系统有一个显示器,则虚拟屏幕的大小完全与之对应。
终端坐标不考虑当前窗口是否为最大化(即,如果主窗口最大化,则该特性返回未最大化大小,尽管终端被扩展至整个显示器)。
可在 EnvScreen.mq5 脚本中检查读取屏幕属性。
void OnStart()
|
下面是生成的日志条目的一个示例。
TerminalInfoInteger(TERMINAL_SCREEN_DPI)=96 / ok
|
除了屏幕和终端窗口的总体大小外,MQL 程序经常需要分析图表(终端内的子窗口)的当前大小。为此,有一组特殊函数(尤其是 ChartGetInteger),我们将在 图表 一节中讨论。