Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 16
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Spero che siate amici)
"La guerra dei titani" non si farà.
C'è un modo per sapere direttamente dal programma quale font è attualmente in windows (ingrandito o no) e fare questa correzione nel codice, senza toccare gli utenti? Solo alcune persone possono avere monitor 4k con testo scalato e la maggior parte degli indicatori (dove viene usato il testo) dal mercato sembra brutta e bruttina.
Spero che il thread non sia morto. Ho il seguente problema: ho un monitor 4k, quindi in Windows ho un carattere ingrandito (dimensione 200%). Quando fai oggetti di testo per gli indicatori, la dimensione del testo viene presa dalle impostazioni di Windows e viene anche scalata, di conseguenza, se fai qualcosa che sembra normale su un sistema normale, sul mio computer il testo si sovrappone, e se lo fai normale per me, allora su impostazioni normali il testo è troppo piccolo. Ho fatto un'impostazione nell'indicatore per permettere all'utente di scegliere se è scalato o no, ma non mi piace molto.
C'è un modo per sapere direttamente dal programma quale font è attualmente in windows (ingrandito o no) e fare questa correzione nel codice, senza toccare gli utenti? Alcune persone possono avere monitor 4k con testo scalato e la maggior parte degli indicatori (dove il testo è usato) dal mercato sembra brutto.
Forse dovresti passare a lavorare con le risorse, o con CCanvas?
Poi si può impostare la dimensione del carattere in base alle impostazioni del sistema operativo.
Leggere TextOut(), TextSetFont()
Ecco, la soluzione è trovata. Per quelli che si chiedono cos'è: usate la funzione TerminalInfoInteger(TERMINAL_SCREEN_DPI); con il ridimensionamento standard sarà 96. Se è 2 volte più grande, allora il ridimensionamento sarà 2 volte di conseguenza.
La soluzione è nell'aiuto
Esempio di calcolo del fattore di scala:
//--- creiamo un pulsante con larghezza 1.5" sullo schermo
int screen_dpi =TerminalInfoInteger(TERMINAL_SCREEN_DPI);//--- ottenere DPI del monitor utente
int base_width =144;//larghezza di base in punti schermo per monitor standard con DPI=96
int width = (button_width *screen_dpi) / 96;//calcolare la larghezza del pulsante per il monitor utente (con DPI)
...
//--- calcola il fattore di scala in percentuali
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI)* 100) / 96;
//--- utilizzando il fattore di scala
width=(base_width * scale_factor) / 100;
La soluzione è nell'aiuto
Sì, ma non è per i caratteri.
Ecco, la soluzione è trovata.
davvero? il ridimensionamento influisce sui dpi del monitor?
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Peculiarità del linguaggio mql5, consigli e trucchi
fxsaber, 2019.02.19 22:28
Vedi la posizione aperta e chiusa allo stesso prezzo. Ma i loro prezzi non sono uguali se confrontati senza normalizzazione!