Merkmale der Sprache mql4, Feinheiten und Techniken - Seite 16
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich hoffe, ihr seid Freunde)
Der "Krieg der Titanen" wird nicht stattfinden.
Gibt es eine Möglichkeit, direkt aus dem Programm heraus zu wissen, welche Schriftart gerade im Fenster ist (vergrößert oder nicht) und diese Korrektur im Code vorzunehmen, ohne die Benutzer zu berühren? Nur einige Leute können 4k-Monitor mit skalierten Text und die meisten Indikatoren (wo Text verwendet wird) vom Markt sieht hässlich und hässlich.
Ich hoffe, der Thread ist nicht tot. Ich habe folgendes Problem: Ich habe einen 4k-Monitor, daher habe ich in Windows eine vergrößerte Schrift (Größe 200%). Wenn Sie Textobjekte für Indikatoren erstellen, wird die Textgröße von den Windows-Einstellungen übernommen und auch skaliert. Wenn Sie also etwas erstellen, das auf einem normalen System normal aussieht, überschneidet sich der Text auf meinem Computer, und wenn Sie ihn für mich normal machen, ist der Text auf normalen Einstellungen zu klein. Ich habe den Indikator so eingestellt, dass der Benutzer wählen kann, ob er skaliert werden soll oder nicht, aber das gefällt mir nicht wirklich.
Gibt es eine Möglichkeit, direkt aus dem Programm heraus zu wissen, welche Schriftart gerade im Fenster ist (vergrößert oder nicht) und diese Korrektur im Code vorzunehmen, ohne die Benutzer zu berühren? Einige Leute haben vielleicht einen 4k-Monitor mit skaliertem Text und die meisten Indikatoren (wo Text verwendet wird) vom Markt sehen hässlich aus.
Vielleicht sollten Sie auf die Arbeit mit Ressourcen oder CCanvas umsteigen?
Dort können Sie dann die Schriftgröße entsprechend den Einstellungen des Betriebssystems festlegen.
Lesen Sie über TextOut(), TextSetFont()
Das war's, die Lösung ist gefunden. Für diejenigen, die sich fragen, was das ist: Verwenden Sie die Funktion TerminalInfoInteger(TERMINAL_SCREEN_DPI); mit Standardskalierung ist es 96. Wenn 2 mal größer, dann wird die Skalierung entsprechend 2 mal sein.
Die Lösung finden Sie in der Hilfe
Beispiel für die Berechnung des Skalierungsfaktors:
//--- wir erstellen eine Schaltfläche mit der Breite 1.5" auf dem Bildschirm
int screen_dpi =TerminalInfoInteger(TERMINAL_SCREEN_DPI);//--- DPI des Benutzermonitors ermitteln
int base_width =144;//Basisbreite in Bildschirmpunkten für Standardmonitore mit DPI=96
int width = (button_width *screen_dpi) / 96;//Berechnung der Tastenbreite für den Benutzermonitor (mit DPI)
...
//--- Berechnung des Skalierungsfaktors in Prozenten
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI)* 100) / 96;
//--- mit Skalierungsfaktor
width=(base_width * scale_factor) / 100;
Die Lösung finden Sie in der Hilfe
Ja, aber es ist nicht für Schriftarten.
Das war's, die Lösung ist gefunden.
Wirklich? Beeinflusst die Skalierung die dpi-Werte des Monitors?
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Eigenheiten der Sprache mql5, Tipps und Tricks
fxsaber, 2019.02.19 22:28
Sie sehen, dass die Position zum gleichen Preis eröffnet und geschlossen wurde. Aber ihre Preise sind nicht gleich, wenn man sie ohne Normalisierung vergleicht!