Ventana de Inicio (Splash) en Visual C++

Por:ivancp, enviado 19 sep 2004
Este artículo muestra como implementar una ventana Splash en Visual C++ en donde se muestre una imagen de 24 bits de profundidad de color.

¿Que es una ventana Splash?

En resumidas cuentas una ventana de presentación de una aplicación (Splash Window), ésta ventana se muestra a cargar la aplicación generálemente contiene una imagen, y como es obvio esta imagen tiene que ser la mejor posible, es decir de alta resolución.

La versión 6.0 del Microsoft Visual C++ solo permite abrir directamente imágenes de hasta 256 colores. Con la versión empresarial de Visual C++ vienen instalados unos componentes para hacer hacer una ventana Splash en un par de clicks. Lo que vamos a hacer es usar esta clase y utilizar la librería DIBAPI para poder abrir y mostrar imágenes de 24 bits.

splsh24.gif
Ventana Splash Ejecutándose al inicio de una aplicación

¿Cómo usarla?



Para poder usar esta clase en tus aplicaciones Visual C++ sigue los siguientes pasos.

  1. Agregar los archivos de clase al proyecto.
  2. No es necesario incluir la la imagen a los recursos del Visual C++ por que la imagen será abierta directamente desde el directorio actual.
  3. Agregar las siguientes lineas en la función InitInstance de la clase de la aplicación

    {
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
    CSplashWnd::EnableSplashScreen(cmdInfo.m_bShowSplash);
    }


    El código nterior hará que aparezca la Ventana Splash.

    Las llaves son para que la variable cmdInfo no cause problemas con la otra del mismo tipo que usualmente se declara mas abajo.
  4. La ventana se cerrará en 3 segundos o cuando suceda un evento con el mouse o el teclado. Y para asegurar que este presente en todo momento agregue este codigo al final de la funcion OnCreate del CMainFrame

    CSplashWnd::ShowSplashScreen(this);

La librería dibapi



Es una librería que provee Microsoft como complemento para cargar/mostrar imagenes independientes del contexto. Las funcionnes que estan disponibles son:

  • PaintDIB() - Pinta una imagen cargada previamente
  • CreateDIBPalette() - Crea una paleta para la imagen
  • FindDIBBits() - Retorna un puntero a los bits de la imagen
  • DIBWidth() - Obtiene el ancho
  • DIBHeight() - Obtiene el alto
  • PaletteSize() - Obtiene el tamaña requerido para la paleta
  • DIBNumColors() - Calcula el numero de colores existentes.
  • CopyHandle() - Hace una copia de la imagen en memoria


Copyright de las funciones:
This is a part of the Microsoft Foundation Classes C++ library. Copyright (C) 1992-1998 Microsoft Corporation All rights reserved.
This source code is only intended as a supplement to the Microsoft Foundation Classes Reference and related electronic documentation provided with the library. See these sources for detailed information regarding the Microsoft Foundation Classes product.


Historia



  • 23 Jul 2003 - 1.0 Versión inicial.
  • 16 Set 2004 - 1.1 Corrección de algunos bugs.

Archivos Adjuntos

  • splashdemo.zip 200,28 KiB
    Código fuente del proyecto que tiene una ventana de inicio. Visual C++

Otros Artículos en esta sección

  • Splash para aplicaciones Visual C++
    Esta es una alternativa que no necesita programar o integrar el código con tu proyecto basado en MFC Visual C++ o incluso otros lenguajes.
    Por: MicroLogic©Software, 2005-04-05
  • Juego de Ajedrez en Visual C++
    Es un tutorial que te enseña como programar un juego de ajedrez en Visual C++ paso a paso, empezando por dibujar el tablero hasta mover cada una de las piezas.
    Por: ivancp, 2004-03-14
  • Botones con iconos en Visual C++
    Este artículo muestra como agregar imagenes/iconos a los botones de los diálogos MFC. Visual C++ no tiene la opción de mejorar la presentación de los botones al estilo Visual Basic.
    Por: ivancp, 2004-03-14
¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro de Visual C++ »