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.zip200.28 KiB
    Código fuente del proyecto que tiene una ventana de inicio. Visual C++

Otros Artículos en esta sección

  • Acceso a MySQL desde Visual C++
    El articulo muestra como utilizar MYSQL API para el acceso a bases de datos MySQL utilizando Visual C++ y MFC.
    Por: ivancp,2004-03-14
  • Cadenas de Conexion ADO
    Una lista de Cadenas de Conexión que se pueden utilizar en conexiónes Bases de Datos desde Visual C++ utilizando ADO. También sirven para otros lenguajes de programación.
    Por: carlos.antollini,2008-02-02
  • Juego de la Serpiente en Visual C++
    Se trata de un juego donde hay una serpiente que esta en constante movimiento, cuando come algo crece, el juego termina cuando la serpiente ya no tiene espacio.
    Por: ivancp,2004-03-27
¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »