Su Windows 7 64 bit non funziona.
Sto cercando di crearne uno trasparente. Ma non funziona. Si potrebbe trovare un bug. Oppure una funzione cIntBMP Trasnparent Add.

//+------------------------------------------------------------------+ //|test.mq5 | //| Copyright 2011, MetaQuotes Software Corp. | | //| http://www.mql5.com //+------------------------------------------------------------------+ #property copyright "Copyright 2011, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Funzione di avvio del programma di script| //+------------------------------------------------------------------+ #import "user32.dll" int GetDC(int hwnd); int ReleaseDC(int hwnd,int hdc); #import "gdi32.dll" int GetPixel(int hdc,int x,int y); int SetPixel(int hdc,int x,int y, int c); #import void OnStart() { int i, H, V, shH=0, shV=0, header; double hgh; color screen [80][80]; color r, g, b, cv=Red; //--- long hwnd=ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE); int hdc=GetDC((int)hwnd); for(V=0; V<80; V++) { for(H=0; H<80; H++) { screen[V][H]=GetPixel(hdc,V,H); } } for(V=0; V<80; V++) { for(H=0; H<80; H++) { cv=screen[V][H]; cv=AlphaBlend(cv ,clrRed ); SetPixel(hdc, V+shV,H+shH,cv); } } Sleep(3000); } //+------------------------------------------------------------------+ /* routine di fusione alfa */ int AlphaBlend(int bg, int src) { int alpha = 100; return (src * alpha / 255 + bg * (255 - alpha) / 255); int a = src >> 24; /* alfa */ /* Se il pixel di origine è trasparente, restituisce solo lo sfondo */ if (0 == a) return (bg); /* miscelazione alfa dei colori di origine e di sfondo */ int rb = (((src & 0x00ff00ff) * a) + ((bg & 0x00ff00ff) * (0xff - a))) & 0xff00ff00; int g = (((src & 0x0000ff00) * a) + ((bg & 0x0000ff00) * (0xff - a))) & 0x00ff0000; return ( (src & 0xff000000) | ((rb | g) >> 8) ); }
FinGeR:
Non avete bisogno di una funzione del genere, perché dovrete ricalcolare e aggiornare l'intera immagine a ogni spunta. La macchina è di ferro, ma lasciate che si occupi di compiti più utili.
Oppure una funzione cIntBMP Trasnparent Add.
Ragazzi, forse ci sono altri modi per migliorare l'immagine?
Dmitry Fedoseev ogni spunta. La macchina è di ferro, ma lascia che si occupi di compiti più utili.
Volete dire che l'unico modo per avere la trasparenza su quegli oggetti rettangolo e triangolo è riprodurre la soluzione che abbiamo qui in questo articolo? Studiate la classe CCanvas. Come disegnare oggetti trasparenti - Articoli MQL5
Studying the CCanvas Class. How to Draw Transparent Objects
- www.mql5.com
Do you need more than awkward graphics of moving averages? Do you want to draw something more beautiful than a simple filled rectangle in your terminal? Attractive graphics can be drawn in the terminal. This can be implemented through the CСanvas class, which is used for creating custom graphics. With this class you can implement transparency, blend colors and produce the illusion of transparency by means of overlapping and blending colors.
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
cIntBMP - libreria per la creazione di immagini in formato BMP:
Una classe per creare e visualizzare immagini in formato BMP.
Author: Dmitry Fedoseev