Como están todos, espero que bien. Les escribo porque me ha saltado una duda con la función “
UpdateLayerWindow”, yo uso esta función para tener un splash-screen semitransparente.
Cuando este se abre, comienza a revisar unos datos de una base, y por esto puede tardarse mucho en mostrar el form principal, Así que me gustaría ponerle un “ProgressBar” para ver cuánto lleva revisado, el problema es que con esta función solo me muestra una capa de mi ventana (o eso creo), y tendría que poner el “ProgressBar” en otro form transparente.
Así que mi pregunta es ¿se se puede mostrar más de una capa con esta función?, y si es así ¿cómo se haría?
Les dejo la forma en que yo la ocupo
Código:
TBlendFunction BlendFunction;
TPoint BitmapPos;
TSize BitmapSize;
DWORD exStyle;
exStyle = GetWindowLongA(Handle, GWL_EXSTYLE);
SetWindowLong(Handle, GWL_EXSTYLE, exStyle | WS_EX_LAYERED);
BitmapPos = Point(0, 0);
BitmapSize.cx = Image1->Width;
BitmapSize.cy = Image1->Height;
BlendFunction.BlendOp = AC_SRC_OVER;
BlendFunction.BlendFlags = 0;
BlendFunction.SourceConstantAlpha = 255;
BlendFunction.AlphaFormat = AC_SRC_ALPHA;
UpdateLayeredWindow(
Handle,
0,
NULL,
&BitmapSize,
Image1->Canvas->Handle,
&BitmapPos,
0,
&BlendFunction,
ULW_ALPHA
);
Nos vemos y de antemano gracias.