|
Escrito por Santiago Villafuerte
|
|
Sábado, 21 de Marzo de 2009 08:20 |
En esta sección encontrarás trucos para Visual C++. También páginas de internet para que estudies tutoriales de Visual C++.
Guías para trucos de Visual C++
Links a páginas interesantes
CodeProject - http://www.codeproject.com/ Página en inglés para trucos de Visual C++, y muchos otros lenguajes de programación.
CodeGuru - http://www.codeguru.com Igual en inglés, muchos trucos para programar en diversos lenguajes.
Sitio Visual C++ por Demian C. Panello - http://www.dcp.com.ar/ Este sitio está destinado al aprendizaje y divulgación del lenguaje C++, utilizando particularmente el entorno de Microsoft, Visual C++. Los contenidos que puedes encontrar aquí están en español, aunque a veces encontrarás algo en inglés.
Teach Yourself Visual C++ 6 in 21 Days - http://poincare.matf.bg.ac.yu/~filip/nm/Seminarski/VC-21days-short/index-1.htm Versión ligera del libro de SAMS que incluye guías para aprender a usar Visual C++ 6.
Subforo de Programación en Visual C++ y C# (parte del Foro Todopic) - http://www.todopic.com.ar/foros/index.php?board=29.0 Foro en español en el que podrás subir tus dudas o ayudar con guías para estos lenguajes.
Incluir archivo GIF, JPEG o BMP en ventana de Visual C++ (ver. 6 en adelante)
Este truco fue tomado de la página siguiente.
http://www.codeguru.com/cpp/g-m/bitmap/article.php/c4879/
Los archivos necesarios están aquí.
Paquete para ejemplo GIF en VC++
- Insertar un control tipo picture a la ventana - Cambiar la ID del objeto a la que uno quiera - Asociarle una variable al control usando el Class Wizard nombre: m_dibujo (o la que uno quiera) categoría: control tipo: CStatic - Agregar los archivos PictureEx.h y PictureEx.cpp al proyecto - Agregar un archivo GIF, JPEG o BMP - En el archivo xxxdlg.h cambiar la variable de clase CStatic a: CPictureEx m_dibujo; - Incluir en los archivos xxxdlg.cpp y xxx.h #include "PictureEx.h" - En la función OnInitDialog poner: if (m_dibujo.Load(_T("mypicture.gif"))) m_dibujo.Draw();

Reloj analógico en ventana Visual C++ (ver. 6 en adelante)
Si ya no quieren poner relojes de texto en sus aplicaciones, pueden poner uno así:

Necesitan los siguientes archivos:
Paquete para ejemplo Reloj Análogo en VC++
- Primero agreguen a su proyecto los archivos Clock.cpp y Clock.h - Agreguen a la ventana un control Static que se llame IDC_CLOCK - Créenle una variable miembro: nombre: m_Clock categoría: Control tipo: CStatic - Al archivo xxx.h de su aplicación agregar#include "Clock.h" - Al archivo de su aplicación xxxdlg.cpp agregar#include "Clock.h" - Cambiar la clase de la variable m_Clock de CStatic a CClock en el archivo xxxdlg.hCClock m_Clock; - En el archivo xxxdlg.cpp, después de CDialog::OnInitDialog(); agregar: //código del relojCOLORREF color; color=RGB(0, 0, 255); //azul m_Clock.SetHandColor(color); - En el archivo Clock.cpp comentar o borrar la instrucción: //#include "AnalogClock.h"
Y eso es todo. Al compilar verán el reloj funcionar. Para el tiempo se usa un timer; si se usa otro timer en la aplicación revisar el archivo clock.cpp para modificar lo necesario.
El código lo saqué de http://www.codeproject.com.
Estilo Windows XP en ventanas de Visual C++ (solo .NET )
Talvez cuando compilan programas en Visual C++ se dan cuenta de que los botones son aburridos:

Pueden cambiarlos para que se vean así:

Paquete para el ejemplo de Tema XP bajo Visual C++ .NET
- Esto sólo funciona en las versiones .NET. - Primero descompriman los archivos en la carpeta de su proyecto. - Luego en Explorador de Soluciones, den click derecho en Resource Files, Agregar, Agregar elemento existente... - Agregan el archivo XPTheme.rc. - Luego verifiquen que en el evento InitInstance esté la instrucciónInitCommonControls();al principio de la función, se ve así: BOOL CCronoLinknppApp::InitInstance() { InitCommonControls(); ......
Si marca un error con respecto a esa instrucción, no la agreguen. Ya cuando compilan su programa se verá con estilo Windows XP.
Ah y el archivo XPTheme.rc trae una referencia a un archivo llamado XPStyles.rc2 que no existe, tuve que comentar esa instrucción ya que no compilaría bien.
Puerto Paralelo y Visual C++
Esta es una guía sencilla sobre como usar el puerto paralelo en cualquier Windows, incluso el renegado XP. Funciona bajo Visual C++ 6 y .Net.
Para empezar comento que todo fue tomado de:
Autor: Fred Bulback http://www.geekhideout.com/iodll.shtml
Visiten la página y descarguen los archivos io.cpp, io.dll, io.zip e io.h. A continuación los pasos a seguir.
- Crear una aplicación de diálogo de tipo MFC - Importar archivos io.h en headers y io.cpp en source files usando la ventana Explorador de soluciones(descargarlos de la página de arriba) - En el archivo xxxdlg.cpp agregar
#include "io.h"
- Abrir resource.h y agregar la dirección del puerto paralelo junto a las demás #define (para no declararla a cada rato)
#define PORTADDRESS 0x378
- Ir a InitDialog de xxxdlg.cpp y llamar LoadIODLL()
LoadIODLL(); //inicia puertos PortOut(PORTADDRESS,0x00); //Las terminales de salida de 0x378 se pondrán a 0V
- Otro ejemplo:
PortOut(PORTADDRESS,0xff); //Las terminales de salida de 0x378 se pondrán a 5V
Las instrucciones disponibles para c++ son:
C/C++ Prototypes
void WINAPI PortOut(short int Port, char Data); void WINAPI PortWordOut(short int Port, short int Data); void WINAPI PortDWordOut(short int Port, int Data); char WINAPI PortIn(short int Port); short int WINAPI PortWordIn(short int Port); int WINAPI PortDWordIn(short int Port); void WINAPI SetPortBit(short int Port, char Bit); void WINAPI ClrPortBit(short int Port, char Bit); void WINAPI NotPortBit(short int Port, char Bit); short int WINAPI GetPortBit(short int Port, char Bit); short int WINAPI RightPortShift(short int Port, short int Val); short int WINAPI LeftPortShift(short int Port, short int Val); short int WINAPI IsDriverInstalled();
Bueno, así de fácil es controlarlo. Cabe mencionar que la librería io.dll sirve para visual basic, delphi y otros más.
Paquete para el ejemplo de Puerto Paralelo y Visual C++. |
|
Última actualización el Domingo, 09 de Agosto de 2009 09:33 |