mql4语言的特点、微妙之处以及技巧 - 页 16

 
我希望你们是朋友)
 
Fast528:
我希望你们是朋友)

"泰坦之战 "是不会发生的。

 
我希望这根树枝没有死。我有以下问题:我有一个4K显示器,因此在Windows中我的字体被放大了(200%大小)。在为指标制作文本对象 时,文本的大小取自Windows的设置,同时也是按比例的,结果是如果我做的东西在正常的系统上看起来很正常,在我的电脑上,文本却相互重叠,如果我做的是正常的我,在正常的设置上,文本就太小。我在指标中做了一个设置,让用户选择是否缩放,但我不太喜欢它。

有没有什么方法可以直接从程序中知道当前在windows中的字体(放大或不放大),并在代码中进行这一修正,而不触及用户?只是有些人可能有4k显示器,有按比例的文字,而市场上的大多数指标(使用文字的地方)看起来很难看,很难看。
 
Olga Miakhovich:
我希望这个主题没有死。我有以下问题:我有一个4K显示器,因此在Windows中我有一个放大的字体(大小为200%)。当你为指标制作文本对象 时,文本的大小取自Windows的设置,而且还被缩放,结果是,如果你制作的东西在正常的系统上看起来是正常的,在我的电脑上,文本就会互相重叠,如果你为我制作的是正常的,那么在正常设置下,文本就太小了。我在指标中做了一个设置,让用户选择是否缩放,但我不太喜欢它。

有没有什么方法可以直接从程序中知道当前在windows中的字体(放大或不放大),并在代码中进行这种修正,而不接触用户?有些人可能有4k显示器,并有按比例的文字,而市场上的大多数指标(使用文字的地方)看起来很丑。

也许你应该改用资源工作,或者CCanvas?

然后你可以根据操作系统的设置,在那里设置字体大小。

阅读关于TextOut(), TextSetFont()

Документация по MQL5: Графические объекты / TextSetFont
Документация по MQL5: Графические объекты / TextSetFont
  • www.mql5.com
Устанавливает шрифт для вывода текста методами рисования и возвращает результат успешности этой операции. По умолчанию используется шрифт Arial и размер -120 (12 pt). [in]  Размер шрифта, который может задаваться положительными и отрицательными значениями. При положительных значениях размер выводимого текста не зависит от настроек размеров...
 
就是这样,找到了解决方案。对于那些想知道它是什么的人来说:使用TerminalInfoInteger(TERMINAL_SCREEN_DPI)函数;在标准缩放下,它将是96。如果是2倍大,那么比例就会相应地增加2倍。
 
Olga Miakhovich:
就这样,解决方案被找到了。对于那些想知道它是什么的人:使用TerminalInfoInteger(TERMINAL_SCREEN_DPI)函数;在标准缩放的情况下,它将是96。如果是2倍大,那么比例就会相应地增加2倍。

解决方案在帮助中

计算比例 系数例子

//--- 我们创建一个宽度为1的按钮。5 "的屏幕
int screen_dpi =TerminalInfoInteger(TERMINAL_SCREEN_DPI);//------得到用户显示器的DPI
int base_width =144;//在DPI=96的标准显示器上,以屏幕点数为基础宽度
int width = (button_width *)screen_dpi) / 96;//计算用户显示器的按钮宽度(含DPI)
...

//---以百分数计算比例系数
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI)* 100) / 96;
//------使用比例因子
width=(base_width * scale_factor) / 100;

 
Vladimir Pastushak:

解决方案在帮助中

是的,但它不适合字体。

奥尔加-米哈科维奇
就这样,解决方案被找到了。

真的吗?缩放会影响显示器的dpi吗?

 
用于多维数 组的ArrayResize的特点
void OnStart()
{
  int Array[][2];
  
  Print(ArrayResize(Array, 7)); // MQL5 - 7, MQL4 - 14
  Print(ArraySize(Array));      // 14
}
 

关于交易、自动交易系统和交易策略测试的论坛

mql5语言的特殊性,技巧和窍门

fxsaber, 2019.02.19 22:28

你看到的是以相同的价格开仓和平仓。但是,在没有正常化的情况下,它们的价格是不平等的!

 
嗯,是的。