Ver Mensaje Individual
  #1  
Antiguo 01-02-2009
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 18
_cero_ Va por buen camino
Question capas con UpdateLayerWindow

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.
Responder Con Cita