Otros fuentes Visual C++

 

En esta sección podrán encontrar archivos fuentes sobre varios temas. Los mismos, en muchos casos, están comentados y en otros no, e incluso tampoco están del todo depurados.

Son simples programas que he escrito para saciar mi curiosidad, para nada representan ejemplos de los contenidos principales de este sitio aunque sí extienden diversos conceptos tratados en el Apunte de Visual C++ o en Introducción a la Programación en Windows o en Introducción a la Programación Orientada a Objetos. Probablemente en algunos casos encuentren errores   y desprolijidades, (más de esto último : ) ), en cualquiera de los casos sepan disculpar. Los agrego en esta sección tan sólo para compartir mi curiosidad.

Invito, además, a quien quiera compartir sus fuentes, (y con ellos su curiosidad), que me los envié que yo los incorporo en esta sección.

 

El que desee enviarme sus fuentes tenga en cuenta lo siguiente:

 

- Solamente el fuente, no enviar ejecutables ni el contenido de la carpeta DEBUG ni RELEASE.

- Por lo pronto sólo fuentes de Visual C++, (sí archivos .c o .cpp sueltos que puedan ser depurado y/o ejecutados con Visual C++, puesto que el sitio trata de este entorno).

- Enviar los archivos comprimidos en un único archivo .zip que no supere los 100kb, (noten que todos los fuentes de este sitio "zipeados" promedian los 30kb, así que un archivo .zip de 100kb como límite es más que suficiente).

- Apuntar una breve descripción sobre lo que hace el programa indicando además una categoría para el mismo y si usa o no MFC.

- Si lo desea puede adjuntar una captura de pantalla del programa en ejecución, (en formato JPG o GIF).

- Ejemplos de categorías:

            . Bases de datos.

            . Archivos.

            . Gráficos.

            . Sistema, (registro de windows, e/s, bios, memoria, etc).

            . Comunicaciones.

            . Impresión.

            . Juegos.

            . Multimedia.

            . General, (algoritmos en general, encriptado, compresión, etc.).

            . Controles específicos, (Slider, MMC, DirectXControl, etc.).

- Especificar claramente:

           Datos obligatorios:

            - Nombre y apellido del autor (no se aceptan seudónimos solos).

            - Nacionalidad (o lugar donde reside).

            - Alguna dirección de e-mail.

           Datos opcionales:

            - Dirección de sitio web personal.

            - Número de ICQ.

            - Profesión.

- Enviar a: demianpanello@yahoo.com.ar

 

Archivos fuentes

 

 


 

desplazamientovista1.zip, 42 Kb. Descargar archivo

 

Objetivo: Cómo especificar los desplazamientos de una vista.

Autor: Demian Panello.

Contenidos: - Objetos CSize, función SerScrollSizes(), mensaje WM_KEYDOWN, (message handler OnKeyDown()), OnHScroll() y OnVScroll(). 

 

Categoría: General.

Comentarios: Aplicación SDI típica, en la cual simplemente se dibuja un círculo que cambia de color gris a blanco cada vez que se pulsa sobre él y además se puede desplazar la vista usando diversas teclas, (Inicio, Fin, Arriba, Abajo, ...) o usando las barra de scroll. Sólo hay código escrito en los métodos: OnInitialUpdate() donde se especifican las dimensiones del scroll, en OnDraw() donde se dibuja el círculo, en OnLButtonDown() donde se detecta si se pulsó sobre el círculo en cuyo caso se redibuja ese sector y en OnKeyDown() donde se verifica que tecla se pulsó para realizar el scroll apropiado. Dos variables miembro de la vista se declaran: int m_nColor y CRect m_rectEllipse.

 


moon_cursor.zip, 39 Kb. Descargar archivo

 

Objetivo: Ejemplificar algunos mensajes del mouse.

Autor: Demian Panello.

Contenidos: - Mensajes del mouse: WM_NCHITTEST, WM_MOUSEWHEEL y WM_MOUSEMOVE

                     - Subclassing , (clase derivada de CButton).

                    

Categoría: General.

Comentarios: El programa presenta un puntero del mouse que va cambiando a medida que se lo mueve, (muestra las diferentes fases de la Luna). Al pasar por sobre el botón "Cerrar", el puntero cambia a una "mano", lo mismo ocurre si se mueve el mouse sobre la barra de título del diálogo o sobre los botones maximizar y minimizar. Además el icono del diálogo, (así esté la ventana activa o minimizada), es animado, (nuevamente se muestran las diferentes fases de la Luna).

 


programaciondigital.zip, 57 Kb. Descargar archivo

 

Objetivo: Segunda práctica calificada de Programación Digital
Profesor: Ing. Santos.
Ciclo 2002-II.

Autor: Christian Pedro Castillo Quiñones.

Ubicación: Lima, Perú.

Contenidos: - Uso de diálogos modales.

                     - Algoritmos.

                     - Clase CTime.

 

Categoría: General / algoritmos.

Comentarios: Fuente enviado por un alumno de una universidad peruana, (¿Universia?). Es un trabajo práctico para la materia Programación Digital. El mismo consiste en la solución de diversos algoritmos para obtener por ejemplo el factorial de un número, capicúas, frecuencias de aparición y comparaciones.

Utiliza varios diálogos de forma modal y controles estáticos con imágenes.

El fuente no está debidamente depurado.

 


Convierte.zip, 10 Kb. Descargar archivo

Enterosybinarios.zip, 28 Kb.

Objetivo: Creación e implementación de un DLL.

Autor: Demian Panello.

Contenidos: - Exportación de funciones de una DLL.

                     - Desplazamiento de bits.

 

Categoría: General / Sistema.

Comentarios: Aquí hay dos fuentes; pues por un lado en convierte.zip encontrará un proyecto Win 32 Dynamic-Link Library  para crear una librería DLL, (en realidad se genera un archivo .dll y otro .lib). Y en enterosybinarios.zip encontrará un proyecto MFC que utilizará las librerías convierte.lib y convierte.dll. Este último, es una pequeña aplicación Dialog Based que consta de dos Edit Box donde se puede ingresar un número decimal o un binario y luego pulsando el botón apropiado se obtiene en un Static el resultado.

Primero debe generar las librerías del proyecto "convierte", (se generan en una carpeta Debug), y luego copiarlas a la carpeta del proyecto enterosybinarios, (debe copiar el .dll y el .lib). Antes de generar este último programa, debe agregar al proyecto el archivo .lib, para eso vaya a Project -> Add to Project -> Files y elija el archivo convierte.lib.

Los fuentes tienen comentarios, no obstante más adelante, escribiré un capítulo dedicado a la creación de DLL en la sección Aplicaciones usando MFC.

 


Dao2.zip, 43 Kb. Descargar archivo

Objetivo: Pequeño sistemita que permite agregar, modificar, eliminar y consultar registros de una tabla de Access.

Autor: Demian Panello.

Contenidos: - Funciones AddNew(), Edit(), Update(), GetAbsolutePosition(), etc.

                     - Objeto COleVariant.

 

Categoría: Bases de datos.

Comentarios: Es una aplicación muy simple y típica como ejemplo de manipulación de datos de una tabla. Tiene abundantes comentarios y como de costumbre en los fuentes de esta sección, no está debidamente depurada. Se incluye la base de datos "base_empleados.mdb".

 


Barras.zip, 43 Kb. Descargar archivo

Objetivo: Aplicación SDI que ejemplifica el uso de una barra de herramientas y menúes.

Autor: Demian Panello.

Contenidos: - Las clases CView y CDocument.

                     - Botones en una barra de herramienta.

                     - Mensaje OnUpdate().

Categoría: Controles específicos y gráficos.

Comentarios: Esta aplicación la comencé a escribir para que la use mi hijo, (Fausto de 1 año y medio), porque empezaba a tener una "atracción" recurrente a los botones del teclado y en especial hacia el mouse. Entonces diseñé esta aplicación para que con sólo mover el mouse, (o pulsando el botón izquierdo, ya que hay días que mi hijo no para de "darle" a ese botón), dibujara circulos o rectangulos, con o sin algún relleno particular.

La aplicación no está depurada, (incluso, no debe ni estar terminada), y tiene varios comentarios.

 


ExitW.zip, 9 Kb. Descargar archivo

Objetivo: Programa molesto, ya que una vez que es ejecutado reinicia el sistema y cada vez que se quiere entrar a Windows, se ejecuta y vuelve a reiniciarlo, impidiendo el ingreso contínuamente.

Autor: Demian Panello.

Contenidos: - Creación de claves en el registro de Windows.

                     - Función para copiar archivos.

                     - Función GetLastError().

                     - Función ExitWindowsEx().

                     - Varias funciones más                  

Categoría: Sistema.

Comentarios: El programa lo escribí usando el SDK de Windows, no tiene ventanas. Cuando se lo ejecuta por primera vez crea una clave en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" del registro de Windows para que cada vez que se inicie Windows se ejecute el programa. Además la primera vez se autocopia al directorio Windows para luego poder ejecutarse cada vez que se inicia el sistema.

Cuando se ejecuta sea o no la primera vez, pinta toda la pantalla de rojo y muestra el texto "BYE BYE WINDOWS" y reinicia el sistema. Como creó una clave en el registro para que cada vez que se entre a Windows se ejecute, se vuelve a ejecutar y reiniciar el sistema no pudiendo el usuario entrar jamás a Window. En realidad no es tan así, ya que si se reinicia el sistema en DOS y se elimina el programa del directorio Windows, listo, en el próximo intento de entrar no se va a ejecutar porque no está más. Quedaría por eliminar las claves del registro, que si no se hace no pasa nada.

ATENCIÓN: El programa no es un virus ni mucho menos, tán sólo es un programa molesto, lo escribí sólo para divertirme un rato cuando lo probaba un amigo. No causa ningún daño, absolutamente nada. Tiene muchos comentarios y me pareció muy útil ponerlo en esta sección porque muestra cómo acceder al registro de Windows, cómo copiar un archivo y muchas funciones más.

 


killdar.zip, 10 Kb. Descargar archivo

Objetivo: Este programa elimina todos los directorios Debug y Release de todos los proyectos de Visual C++ que se encuentre en una carpeta determinada.

Autor: Demian Panello.

Contenidos: - Estructura WIN32_FIND_DATA.

                     - Funciones FindFirstFile() y FindNextFile().

                     - Funciones SetCurrentDirectory(), RemoveDirectory() y DeleteFile().         

Categoría: Sistema, (add in para Visual Studio).

Comentarios: Como habrán advertido cada vez que crean una aplicación en Visual C++, el contenido de los directorios Debug y Release tiene archivos intermedios bastantes pesados. El entorno de VC++ tiene una opción en el menú Build llamada Clean que permite borrar todos esos archivos intermedios del proyecto que está abierto. Killdar es un ejecutable que escribí usando las funciones SDK de Windows que automatiza lo que hace Clean, eliminando todas las carpetas DEBUG y RELEASE de todos los Workspaces existentes dentro de una carpeta llamada FuenteVC, (que es en mi máquina donde tengo todos los fuentes que he escrito y probado de Visual C++). Esto logra que se ahorre espacio en el disco.

El programa ha sido escrito para que funcione en mi máquina ya que trabaja sobre el directorio "FuenteVC", para probarlo en otra máquina hay que modificar la variable global char MiDir[256] escribiendo la ruta donde se encuentran sus archivos fuentes y colocar el ejecutable en dicha carpeta.

Al programa no lo he depurado exaustivamente, pero no obstante lo estoy usando y funciona a la perfección. Aconsejo que hagan una copia de sus fuentes antes de probarlo.

 


Colores.zip, 36 Kb. Descargar archivo

Objetivo: Programa que permite conocer la combinación RGB() de un color.

Autor: Demian Panello.

Contenidos: - Utilización de controles Sliders..

                     - Pintar sobre una región específica.

                     - Creación de fuentes, (clase CFont).

Categoría: Controles específicos, (Slider), y gráficos.

Comentarios: No ha sido depurado exhaustivamente. Actualizado el 16/05/02.


Graf4.zip, 28 Kb. Descargar archivo

Objetivo: Dibuja en posiciones aleatorias y en colores aleatorios, en un diálogo, tréboles de cuatro hojas, (Cos(2*ángulo)).

Autor: Demian Panello.

Contenidos: - Función srand().

                     - Funciones gráficas para texto, (SetTextColor(), SetTextAlign(), SetBkMode(), TextOut()).

                     - Creación de fuentes, (clase CFont), uso de la función CreatePointFont().

Categoría: Gráficos.

Comentarios: Ninguno.


Memdc.zip, 29 Kb. Descargar archivo

Objetivo: Pinta en memoria una trama, (la misma del ejemplo del capítulo X.), y luego la copia a un diálogo.

Autor: Demian Panello.

Contenidos: - Uso de la memoria como dispositivo de contexto.

                     - Creación de BitMap.

                     - Utilización de la función BitBlt() para copiar de la memoria al diálogo.

Categoría: Gráficos.

Comentarios: No ha sido depurado exhaustivamente.

 


Multimedia.zip, 29 Kb. Descargar archivo

Objetivo: Reproduce un video usando el control Microsoft Multimedia Control.

Autor: Demian Panello.

Contenidos: - Control MMControl versión 6.0.                  

Categoría: Multimedia.

Comentarios: El programa reproduce indefinidamente un pequeño video, (Robin Gibb de los Bee Gees cantando "Fanny be tender with my love"). Este mismo programa se puede rehacer sin usar el control MMC, utilizando las funciones MCI de Windows (que el control MMC precisamente encapsula).

 


Vermem.zip, 31 Kb. Descargar archivo

Objetivo: Muestra el total de memoria disponible, la libre y la usada.

Autor: Demian Panello.

Contenidos: - Función GlobalMemoryStatus().

                     - Estructura MEMORYSTATUS.                  

Categoría: Sistema.

Comentarios: Un TIMER actualiza los valores del total de memoria libre y ocupada cada 1/2 segundo.

 


 

Volver a la página principal