Você está na página 1de 36

VISUAL C + + 1

VISUAL C++

CONCEPTO: Es un entorno integrado de desarrollo que permite


la programación orientada a objetos (POO) conjuntamente con
el sistema de desarrollo SDK (SDK-Kit de desarrollo de software)
de Windows. Al ser un entono integrado visual C++ incluye,
entre, otras, las siguientes herramientas de desarrollo:
Editor de texto: Orientado a la codificación C/C++ (Resaltando
palabras clave.)
Compilador /Enlazador: Que acelera el proceso de
construcción de los programas.
Depurador: Que permite visualizar y modificar el contenido de
las variables y áreas de memoria.
Visor de Datos y Dependencias (Browser): Que permite
fácilmente controlar dependencias y referencias a funcione,
datos, clases, etc.
El SDK de Windows es mas que un conjunto de funciones que
añade además numerosas definiciones de tipos de datos nuevos
para cualquier programador de C/C++ incluye la librería de
clases MFC (Microsoft Foundation Classes) que permite crear y
gestionar de manera intuitiva componentes típicos de Windows.

LA LIBRERÍA DE CLASES MFC: Las MFC (Microsoft Foundation


Classes) son un conjunto de clases creados por Microsoft
destinadas a hacer más sencilla la programación bajo entorno
Windows.Contine funciones para multitud de objetos del mundo
Windows (bitmap, ventanas, comboboxes, etc.).

PROGRAMACIÓN ORIENTADA A OBJETOS: La POO es una


nueva filosofía de programación que se basa en la utilización de
objetos. El objetivo de la POO no es sino la meta de cualquier
modelo de programación estructurada convencional: “imponer”
una serie de normas de desarrollo para que aseguren y faciliten
la mantenibilidad y resuabilidad del código.

MECANISMOS BÁSICOS DE LA POO:


Objetos: un objeto es una entidad que tiene unos atributos
particulares (datos) y unas formas de operar sobre ellos (lo
métodos o funciones miembro). Es decir un objeto, por una

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 2

parte una serie de operaciones que definen su comportamiento,


y una serie de variables manipuladas por esas funciones que
definen su estado. Por ejemplo, una ventana de Windows
contendrá operaciones como “maximizar”, y variables como
“ancho” y “alto” de la ventana.
Mensajes: en C++, un mensaje se corresponde con el nombre
de uno de los métodos de un objeto. Cuando se pasa un
mensaje a un objeto, este responde ejecutando el código de la
función asociada.
Método: un método (función miembro) se implementa de un
objeto y determina como tiene que actuar el objeto cuando se
produce el mensaje asociado. En C++ un método se
corresponde con la definición de la función miembro del objeto.
La estructura más interna de un objeto está oculta, de la
manera que la única conexión con el exterior son los mensajes.
Clases: una clase es la definición de un tipo de objeto. De esta
manera, una clase “Empleado” representará todos los
empleados de una empresa, mientras que un objeto de esta
clase (también denominado instancia) representaría a uno de
esos empleados en particular.

PRINCIPALES CARACTERISTICAS DE LA POO:


Abstracción: es el mecanismo de diseño en la POO. Nos
permite extraer un conjunto de entidades de datos y
comportamientos comunes para almacenarlos en clases.
Encapsulamiento: Mediante esta técnica conseguiremos que
cada clase sea una caja negra, de tal manera que los objetos de
esta clase se puedan manipular como unidades básicas.
Herencia: es el mecanismo que nos permite crear clases
derivadas a partir de clases bases. Es decir, podríamos tener la
clase “empleado” (clase base) y la clase “vendedor” derivada
de la anterior.
Polimorfismo: esta característica nos permite disponer de
múltiples implementaciones de un mismo método de clases,
dependiendo de la clase en la que se realice. Es decir podemos
acceder a una variedad de métodos distintos (con el mismo
nombre) mediante el mismo mecanismo de acceso.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 3

CONCEPTO DE PROYECTO (WORKSPACE): En Visual C++ la


construcción de cualquier tipo de programa se inscribe dentro
del concepto de proyecto (Workspace). Un proyecto define los
pasos a seguir para alcanzar la construcción de un objetivo (un
programa, un DLL, etc.) en realidad es un concepto análogo a lo
que se conoce como “makefile” en otros entornos típicos de
desarrollo de C. En realidad Visual C++ genera para cada
proyecto dos ficheros que lo definen, el fichero de Workspace
(con extensión wsp) y un makefile (con extensión mak) estándar
que permitiría la utilización del mismo proyecto en otro entorno
distinto.

TIPOS DE PROYECTOS:
- Aplicación (.EXE) basada en la MFC (MFC Appwizar).
- Librería de enlace dinámico (.DLL) basada en la MFC (MFC
Appwizar).
- Aplicación (.EXE) estándar para Windows (basada en el SDK).
- Librería de enlace dinámico (.DLL) (basada en el SDK).
- Aplicación (.EXE) modelo DOS (Console application).
- Librería estática (.LIB).

GENERADOR DE APLICACIONES: Visual C++, con la potencia


de MFC se convierte en un generador de aplicaciones. Para ello
utiliza dos herramientas integradas complementarías:
- App Wizard: que es el generador de aplicaciones
propiamente dicho. Con el podremos generar esqueletos de
programa para Windows basados en la MFC.
- Class Wizar: herramienta de mantenimiento de los
programas generados por la anterior. Permite añadir o
eliminar clases, modificar los comportamientos de las
mismas, etc.

VISOR DE PROYECTOS (WORKSPACE): Es una ventana a


través de la que podemos visualizar el contenido de los
proyectos, accedemos a la misma desde el menú “Ver “ y la
opción “Proyecto”. Esta formada por 3 carpetas que nos
permiten visualizarlos desde distintos puntos de vista:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 4

- Class View, o visor de Clases, representa el proyecto con


las clases que lo componen. Desde aquí podremos añadir
datos o funciones fácilmente.
- Resource View, o visor de Recursos, que permite
añadir/modificar/eliminar recursos de la aplicación.
- File View, o Visor de Ficheros, que representa el proyecto
mediante la lista de ficheros fuente que lo componen.

CLASE CDialog: es una clase base que permite visualizar cajas


de dialogo. Hay dos tipos de ventanas de diálogo: con modo o
modal y sin modo. Una ventana con modo exige que el usuario
cierre para poder pasar a la otra ventana. Una ventana sin modo
se contrapone a una ventana con modo; esto es, el usuario
puede visualizar la caja de dialogo y retorna a la otra tarea sin
cancelar o cerrar la caja de dialogo.

EJEMPLO N°1: APLICACIÓN CAJA DE DIALOGO – CDIALOG:

PASO 1: Creando un Proyecto:


1.Ingrese a Visual C++.
2.Vaya al menú File - New y en la solapa Proyects seleccione
MFC AppWIzar (exe).
3.En Proyect Name escriba “Ejemplo N° 1”. En Location indicar
el directorio donde se guardara la aplicación. Pulse OK.
4.El Step 1 permite identificar el modelo de ventana de nuestra
aplicación: SDI (simple documento), MDI (multiples
documentos) o basada en diálogo. Nosotros elegiremos Dialog
Based y en What languaje… elegir Español España para
determinar el idioma.
5.Pulse Next. Deje por defecto los Step 2, Step 3 y Step 4.
6.Pulsamos Finish y se muestra una lista con las características
del armazón de aplicación que el asistente esta por hacer. OK
y listo.
El asistente nos generó la base de una aplicación que consta
de una ventana con dos botones Aceptar y Cancelar, con un
texto en el centro y además otra ventana (más pequeña, el
Acerca de…

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 5

En la caja de diálogo creada por el asistente marcar con el


Mouse el texto “A Hacer: ….” Y lo eliminamos presionando la
tecla suprimir.

PASO 2: Usando la Ventana Worksapace:


Una ventana que tiene 3 solapas: Class View, Resource View y
File View.
1.Class View: podremos ver las clases generadas por el
asistente.
2.Resource View: Se podrá observar varias carpetas, en las
cuales se accede al lugar donde se lleva a cabo el diseño de la
aplicación.
3.File View: Presenta el proyecto mediante la lista de ficheros
que lo componen.

PASO 3: Anadir Controles a la Aplicación:


1.De la barra de herramientas Controls seleccionamos el control
Button y lo colocamos el algún lugar del cuadro de diálogo.
2.Modificar las propiedades del control Button, para acceder a
sus propiedades hacer clic con el botón derecho del Mouse
encima del control Button y se mostrará su menú contextual y
elegir Propiertes.
3.Modifique la propiedad Caption y escriba “Púlseme”; en la
propiedad ID escriba IDC_BUTTON1 y luego cerrar la ventana o
presionar Enter.

PASO 4: Unir el Código a los Objetos:


1.Clic con el botón derecho del Mouse sobre el control al cual se
quiere crear un manejador y seleccione Class Wizar.
2.En la lista Objets Ids selecione IDC_BUTTON1 y en la lista
Messages seleccione Bn_Clicked. Luego pulse Add Fuction y
aparecerá un mensaje alertando que esta por crear la función
miembro OnButton1; presione OK. Pulse Edit Code para poder
escribir el código. Entre las llaves tendremos que escribir
nuestro código.
3.Escribamos entonces el código para mostrar nuestro mensaje:
void CEjemploN1Dlg::OnButton1()

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 6

{
MessageBox("Hola Mundo","VisualC++6",
MB_ICONINFORMATION);
}

PASO 5:Compilación y Ejecución.


1.Presione Ctrl. + F7 para compilar.
2.Presione Ctrl. + F5 para ejecutar.
3.Le mostrara un mensaje si desea guardar el archivo, hacer clic
en Si.
4.En la ventana de diálogo que se muestra pulse el botón
Pulseme aparecerá la caja de mensaje.
5.Presione Aceptar para cerrar el cuadro de mensaje.
Nuevamente presione Aceptar para cerrar la ventana de
diálogo principal. Luego cierre la ventana de código.

PASO 6: Mostrando Texto en la Caja de Diálogo.


1.En el Toolbox el control Static Text y arrastrelo a la caja de
diálogo principal.
2.Las propiedades para este control serán:
− En General: ID = IDC_STATIC, Caption = Programación en Visul
C++.
− En las opciones marcar Visible y Tab Stop.
− En Style: marcar la opción Border.
− En Extended Style: Marcar la opción Modal Frame.
3.Presione Ctrl. + F5 para ejecutar.

PASO 7: Aplicando un Gráfico.


1.Seleccionar Resource View en la ventana Workspace.
2.Clic con el botón derecho del Mouse sobre
EjemploN1Resurces.
3.En el menú contextual seleccionar Insert.
4.En la ventana Insert Resources, seleccionar Bitmap y luego
Import para elegir la pintura a agregar.
5.La ventana Import Resource muestra la imagen que se va a
importar márquelo y presione Import, en la ventana que se
muestra Aceptar.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 7

6.De la caja de herramientas Toolbox escoja el control Picture y


luego colóquelo en la ventana principal de diálogo.
7.Establezca sus propiedades para el control Picture, haciendo
clic con el botón derecho del Mouse sobre el marco:
− ID = IDC_STATIC.
− Type = Bitmap.
− Image = IDB_BITMAP1.
8.Luego ejecutar presionando Ctrl + F5..

CLASE CEDIT: La clase base CEdit proporciona la funcionalidad


para un control edición de Windows. Un control Edit es una
pequeña ventana rectangular en la que el usuario puede entrar
texto.

CLASE CSTRING: Un objeto CString tiene una cadena de


caracteres de longitud variable. La clase CString provee muchas

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 8

funciones y operadores para manipular objetos CString


utilizando una sintaxis similar empleada en el lenguaje Basic.

EJEMPLO N° 2: APLICACIÓN CUADRO DE TEXTO:

PASO 1: Creando un Proyecto.


1.Ingrese a Visul C++.
2.Vaya al menú File – New y en la solapa Proyect seleccione MFC
App Wizard (exe).
3.En Proyect Name escriba Ejemplo N° 2. En location indicar el
directorio donde se guardara la aplicación. Pulse OK.
4.En le siguiente paso seleccione Dialog Based, en la lista What
languaje... elegir Español España.
5.Pulse Next. Deje como están por defecto los Step 1, Step 2,
Step 3 y Step 4.
6.Pulsamos Finish y se muestra un listado con las características
del armazón de aplicación que el asistente esta por hacer, OK
y listo.

PASO 2: Añadir controles a la aplicación.


1.Agregue desde la caja de controles, un cuadro de edición (Edit
Box).
2.Determinar sus propiedades. ID = IDC_EDIT1.
PASO 3: Unir el Código a los Objetos.
1.Clic con el botón derecho del Mouse sobre el control Edit y
seleccionar Class Wizard.
2.En la lista Object IDs seleccionar IDC_EDIT1, en la lista
Messages seleccionar EN_CHANGE, luego clic en el botón Add
Function y clic en OK. Presione el botón Edit Code. Escriba el
siguiente código:
void CejamploN2Dlg::OnChangeEdit1()
{
CEdit* edTexto;
CString strDato;
edTexto=(CEdit*) GetDlgItem(IDC_EDIT1);
edTexto->GetWindowText (strDato);
SetWindowText(strDato);

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 9

3.Presione Ctrl. + F5 para ejecutar la aplicación; ubicarse en el


cuadro de edición y escribir un texto y se mostrara el texto
como título de la ventana de diálogo.

PASO 4: Variables Miembro.


1.Agregar al cuadro de diálogo un control Button.
2.Determinar sus propiedades: ID = IDC_BUTTON1. Caption =
Regresar.
3.Crearemos una variable miembro para el cuadro de edición;
para esto acceder a Class Wizard, seleccionar la solapa
Members Variables.
4.En la lista Controls IDs seleccionar IDC_EDIT1, clic en el botón
Add Variable.
5.En esta ventana en Member variable name ingrese m_strDato,
category Value y variable type CString. Acepte esta ventana. Y
acepte la ventana Class Wizard.
6.Seleccione el botón Regresar y acceda a Class Wizard.
Seleccione la solapa Message Maps, en la lista Object’s ID
seleccione IDC_BUTTON1, en la lista Messages seleccionar
BN_CLICKED. Presione Add Function y OK. Presione Edit Code.
Escriba el siguiente código:
void CEjamploN3Dlg::OnButton1()
{
UpdateData(TRUE);
if (m_strDato.IsEmpty()==FALSE)
{
MessageBox("Ahora se invertirá:"+m_strDato);
m_strDato.MakeReverse();
UpdateData(FALSE);
SetWindowText(m_strDato);
}
}

PASO 5: Compilación y Ejecución.


1.Presionar Ctrl. + F7 para compilar.
2.Presionar Ctrl. + F5 par ejecutar.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 10

3.En la ventan de diálogo que se muestra digite el texto “Visual


C++ 6” en el cuadro de texto.
4.Ahora presione el botón Regresar para invertir el texto
ingresado. Aparecerá el cuadro de mensaje. Presione OK.
5.La ventana de diálogo mostrará el texto invertido en la caja de
texto.

CLASE CBUTTON: La clase CButton proporciona la


funcionalidad para los controles Button de Windows. Un control
Button es una pequeña ventana rectangular que puede ser
activada y desactivada haciendo clic sobre el control. Un control
Button puede usarse solos o en grupos y puede aparecer con sin
etiqueta de texto. Típicamente se consideran controles Button:
botones de pulsación, casillas de verificación y botones de
opción.

EJEMPLO N° 3: APLICACIÓN BUTTON:

PASO 1: Creando un Proyecto.


1.Crear una aplicación MFC basada en dialogo, tal como se hizo
en los ejemplos anteriores y póngale como Project Name
Ejemplo N° 5.
2.Seleccione File view en la ventana Workspace. Doble clic en el
archivo Ejemplo N° 5Dlg.cpp de la carpeta Source file.
3.Dentro del archivo Ejemplo N° 5Dlg.cpp, declare los objetos de
la clase base Cbutton, como muestra el código siguiente:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 11

// Ejemplo N° 3Dlg.cpp : implementation file


//
#include "stdafx.h"
#include "Ejemplo N° 3.h"
:
:
#endif
CButton myButton1, myButton2, myButton3, myButton4,
myButton5, myButton6, myButton7;
////////
// CAboutDlg dialog used for App About

4.Digite el código siguiente dentro de la función OnInitDialog():


BOOL CEjemploN3Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
:
:
// TODO: Add extra initialization here
//Create un push button.
myButton1.Create(_T("Push Button"),
WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30),this,1);
//Create un radio button.
myButton2.Create(_T("Radio Button"),
WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
CRect(10,40,200,70),this,2);
//Create un DEFPUSHBUTTON.
myButton7.Create(_T("DEFPUSHBUTTON"),
WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON,
CRect(150,40,300,70),this,3);
//Create un auto 3-state button.
myButton3.Create(_T("3-state button"),
WS_CHILD|WS_VISIBLE|BS_AUTO3STATE,
CRect(10,70,200,100),this,4);
//Create un auto check box.
myButton4.Create(_T("Auto check box"),
WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 12

CRect(10,100,100,130),this,5);
//Create un GROUPBOX.
myButton5.Create(_T("GROUPBOX"),
WS_CHILD|WS_VISIBLE|BS_GROUPBOX,
CRect(10,140,100,170),this,6);
//Create un LEFTTEXT.
myButton6.Create(_T("LEFTTEXT"),
WS_CHILD|WS_VISIBLE|BS_LEFTTEXT,
CRect(10,180,200,240),this,7);
return TRUE; // return TRUE unless you set the focus to
a control
}

PASO 2: Compilar y Ejecutar:


1.Presionar las teclas Ctrl. + F7 para compilar.
2.Presionar las teclas Ctrl.+ F5 para ejecutar.

EJEMPLO N° 4: DESARROLLO DE LA APLICACIÓN


VEHÍCULO:

PASO 1: Creando un Proyecto:


1.Crar una aplicación basada en diálogo, tal como se hizo en los
ejemplos anteriores y póngale como Project Name Ejemplo N°
4.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 13

2.Diseñe la ventana de diálogo como se muestra a continuación:

PASO 2: Establecer sus propiedades y variables miembro:


1.Seleccione un Group Box de la ventana de controles. Escriba
Marcas en la propiedad Caption.
Luego coloque 3 Radio Button dentro del Group Box:
- Radio Button1: ID = IDC_RADIO1, caption = BMW, tildar Group
- Radio Button2: ID = IDC_RADIO2, caption = Audi.
- Radio Button3: ID =IDC_RADIO2, caption = Opel.
Se tilda Group sólo en el primero para indicar que a partir de
ese control en adelante, estarán relacionados los botones de
opción hasta encontrar un nuevo control con Group tildado.
2.Agregue otro Group Box a la derecha de Marca con la
propiedad caption =Tipos.
- Luego coloque tres radio buttons dentro del Group Box.
- Radio Button4: ID = IDC_RADIO4, caption = SEDAN, tildar
Group y en Style tildar Push Like.
- Radio Button5: ID = IDC_RADIO5, caption = Cupe y en Style
tildar Push Like.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 14

- Radio Button6: ID = IDC_RADIO6, caption = Break y en Style


tildar Push Like.
3.Por último coloque 2 Check Box a la derecha de Tipo.
- El primero: ID = IDC_CHECK1, caption = Con Aire y Group
tildado da por finalizado el grupo anterior..
- El segundo: ID = IDC_CHECK2 y en caption = Con CD.

PASO 3: Agregar Variables Miembro.


1.Diseñada la ventana y los controles con sus respectivas
propiedades especificadas; hay que crear las variables
asociadas a los controles que manipularán los datos.
- Seleccione el primer radio button del grupo Marca, (BWM) y
acceda a Class Wizars.
- En class wizars vaya a la solapa Member variables y
seleccione IDC_RADIO1.
- Presione Add variable; aparecera la ventana Add Member
Variable. Alli ingrese m_Marca como member variable,
seleccione Value como Category y en variable Type = int.
- Hagamos lo mismo para el primer radio button del grupo Tipo
(Sedán) y llame a la variable m_Tipo.
.2Debemos asignarle a las variables recién creadas un valor
inicial, para que así, al iniciar la aplicación, estén
seleccionados por defecto los primeros radio buttons de cada
grupo. Esto se hace editando el constructor de la clase
CEjemploN4Dlg.
- En la ventana workspace, seleccione la solapa Class View.
- Expanda la rama de la clase CEjemploN4Dlg.
- Haga doble clic en la primera función:
CEjemploN4Dlg(CWnd*pParent=NULL).
- Verá que las variables creadas tienen el valor –1, cámbielo por
0. esto establece como seleccionada la primera opción, BMW
en el primer grupo y Sedan en el segundo.
CEjemploN4Dlg::CEjemploN4Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CEjemploN4Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEjemploN4Dlg)
m_Marca = 0;
m_Tipo = 0;

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 15

//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent
DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

3.Escribir el código del botón Aceptar puede acceder al mismo


haciendo doble clic sobre el botón:
void CEjemploN4Dlg::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
CWnd*wndAuto;
CWnd*wndTipo;
CString strMensa;
CString strAuto, strTipo, strExtra;
CButton*bAire;
CButton*bCD;
//Convierto los dos Check que originalmente son de
//tipo CWnd a tipo CButton para poder hacer uso
de
//las funciones CButton.
bAire=(CButton*)GetDlgItem(IDC_CHECK1);
bCD=(CButton*)GetDlgItem(IDC_CHECK2);
strExtra= " -";
if (bAire->GetCheck() && bCD->GetCheck())
strExtra="con Aire y CD.";
else if (bAire->GetCheck() && !bCD->GetCheck())
strExtra="con Aire.";
else if (!bAire->GetCheck() && bCD->GetCheck())
strExtra="con CD.";
UpdateData();
wndAuto=GetDlgItem(IDC_RADIO1 + m_Marca);
wndTipo=GetDlgItem(IDC_RADIO4 + m_Tipo);
wndAuto->GetWindowText(strAuto);
wndTipo->GetWindowText(strTipo);
strMensa="Su auto es un/a: "+strTipo+"
"+strAuto+" "+strExtra;

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 16

MessageBox(strMensa);
}

PASO 4: Compilar y ejecutar.


1.Presionar las teclas Ctrl. + F7 para compilar y Ctrl. +F5 para
ejecutar.
2.En la ventana de dialogo principal seleccionar BMW como
Marca luego elegir Sedam como Tipo y seleccione los check
box Con Aire y Con CD. Presione Aceptar.
3.La ventana de mensaje muestra las opciones elegidas en la
ventana de dialogo principal.

CLASE CLISTBOX: La clase CListBox define controles llamados


listas. Un control lista es una ventana hija, rectangular, que
visualiza una lista de elementos. El usuario puede añadir o
suprimir elementos de la lista, los cuales forman una columna
desplazable dentro del rectángulo.

EJEMPLO N° 5: APLICACIÓN CONTROL LISTA.

PASO 1: Crando un Proyecto:


1.Crear una aplicación MFC basada en diálogo, pongale
“Ejemplo N° 5” como Proyect Name.
2.Diseñe la ventana como se muestra a continuación:

PASO 2: Propiedades y Variables Miembro:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 17

1.Lista 1: Como ID = IDC_LIST1, en Style desmarque la opción


Sort, pues en este caso no pretendemos que la lista se ordene
automáticamente. Presionar Ctrl + W para acceder a Class
Wizard vaya a la solapa Member Variables, marque IDC_LIST1
y presione el botón Add Variable aparecera la ventana Add
Member Variable, como name escriba m_lstNumeros, como
category seleccione Control y variable type Clist Box.
2.Lista 2: Como ID = IDC_LIST2, en Style desmarque la opción
Sort, en extended style marque Modal Frame. Acceda a Class
Wizard: como name escriba m_lstPares, como category
seleccióne Control y variable type Clist Box.
3.Button 1: ID= IDC_BUTTON1 y caption = >>.
4.Button 2: ID = IDC_BUTTON2 y caption = >.
5.Edit 1: ID=IDC_EDIT1. Variable miembro: como name =
m_Cant, category = Value y type = int.
6.Button 3: ID = IDC_BUTTON3 y caption = Cargar.
7.Static Text: Caption = Digite la cantidad de números.

PASO 3: Introduciendo Código.


1.Primero codificaremos el botón Aceptar; haciendo doble clic
creamos la función OnOk, escriba el código siguiente:
void CEjemploN5Dlg::OnOK()
{
// TODO: Add extra validation here
if(MessageBox("¿Desea Salir?","Salir",
MB_ICONQUESTION + MB_YESNO)==IDYES)
CDialog::OnOK();
}

2.Seleccione el botón Cargar, haga doble clic y se creará las


función OnButton3(), escriba el código siguiente:
void CEjemploN5Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
CString c;//Declara la “c” de tipo string.
int i;//Declara la variable “i” de tipo entero.
UpdateData(TRUE);//Pasa el contenido del cuadro de
edición a la variable miembro.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 18

m_lstNumeros.ResetContent();//Verifica el contenido de
la variable
for (i=1;i<=m_Cant;i++)
{
c.Format("%s%i",c,i);//formatea i como string
m_lstNumeros.AddString(c);//lo agrego a la lista
c="";
}
}

3.Seleccione la lista 1, haga doble clic para crear la función


OnSelchangeList1(), escribir su código:
void CEjemploN5Dlg::OnSelchangeList1()
{
// TODO: Add your control notification handler code here
CString strTexto;
m_lstNumeros.GetText(m_lstNumeros.GetCurSel(),
strTexto);
MessageBox(strTexto);
}

Al tener cargada la lista 1, ahora vamos a escribir el código que


al seleccionar un elemento de la lista lo muestre en un mensaje.
4.Escribiremos ahora el código para el botón IDC_BUTTON1,
doble clic en botón para crear la función OnButton1() y escribir
su código:
void CEjemploN5Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
int i,n,ce;
CString strC;
ce=m_lstNumeros.GetCount();
if(ce>0)
for(i=0;i<ce;i++)
{
m_lstNumeros.GetText(i,strC);//obtengo elemento
n=atoi(strC);//lo convierto a numérico
if(n%2==0)//averiguo si es par

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 19

{
m_lstPares.AddString(strC);//lo paso a la
otra
}
}
}

5.Escribir el código para el botón IDC_BUTTO2, hacer doble clic


en el botón para crear la función OnButton2(), luego escribir
su código:
void CEjemploN5Dlg::OnButton2()
{
// TODO: Add your control notification handler code here
int n;
CString strC;
m_lstNumeros.GetText(m_lstNumeros.GetCurSel(),
strC);
n=atoi(strC);
if(n%2==0)
m_lstPares.AddString(strC);
}

PASO 3: Compilar y ejecutar.


1.Ingrese un valor numérico mayor a 0 en el cuadro de edición ,
luego presionar el botón Cargar y se cargara la lista IDC_LIST1
con los números naturales menores al contenido del cuadro de
edición.
2.Ya tenemos la lista 1 cargada, ahora al seleccionar un
elemento de la lista 1 se muestra un mensaje con el elemento
seleccionado. Presionar OK en el mensaje mostrado.
3.Ahora haga clic en el botón IDC_BUTTON1 para pasar los
elementos pares de la lista 1 a la lista 2.
4.A continuación haga clic en el botón IDC_BUTTON2, si el
elemento seleccionado en la lista 1 es par se pasará a la lista
2.

EJEMPLO N° 6: LISTOFCOUNTRIES:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 20

PASO 1:Creando un Proyecto.


1.Crear una aplicación MFC basada en diálogo, póngale como
Proyect Name Ejemplo N° 6.
2.Diseñe la ventana de diálogo como se muestra a continuación:

PASO 2: Creando Variables Miembro.


1.ID = IDC_LIST1: Como name = m_ListCountries, category =
Control y type = ClistBox.
2.ID = IDC_EDIT1: Como name = m_ListResult, category = Value
y type = CString.
3.ID = IDC_EDIT2: Como name = m_Transfer, category = Value y
type = CString.
4.ID = IDC_EDIT3: Como name = m_Add, category = Value y
type =CString.
5.ID = IDC_EDIT4: Como name = m_Insert3, category = Value y
type = CString.
6.ID = IDC_EDIT5: Como name = m_InsertItem, category =
Value y type = CString.

PASO 3: Adicionando Elementos a una Lista.


1.En la función OnInitDialog() de la ventana de diálogo inicializar
la lista como sigue, haciendo doble clic en la ventana de
dialogo, para acceder a su código:
BOOL CEjemploN6Dlg::OnInitDialog()

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 21

{
CDialog::OnInitDialog();
:
:
// TODO: Add extra initialization here
m_ListCountries.AddString("Afganistan");
m_ListCountries.AddString("Costa Rica");
m_ListCountries.AddString("España");
m_ListCountries.AddString("Angola");
m_ListCountries.AddString("Rusia");
m_ListCountries.AddString("Canada");
m_ListCountries.AddString("Grecia");
m_ListCountries.AddString("Austria");
m_ListCountries.AddString("Brasil");
m_ListCountries.AddString("Argentina");
m_ListCountries.SetCurSel(3);
return TRUE; // return TRUE unless you set the focus to
a control
}

PASO 4: Transferir un Elemento hacia un Edit Box


después de hacer doble clic en la Lista.
1.Acceder al class wizard.
2.Clic en la solapa Message Maps, en la lista Object IDs
seleccionar IDC_LIST1, el al lista Messages seleccionar
LBN_DBLCLK, luego doble clic y OK.
3.Clic en el botón Edit Code y escriba el código siguiente:
void CEjemploN6Dlg::OnDblclkList1()
{
// TODO: Add your control notification handler code here
m_ListCountries.GetText(m_ListCountries.GetCurSel
(),m_ListResult);
UpdateData(FALSE);
}

PASO 5: Transferir el contenido de un Edit Box a un List


Box.
Hacer doble clic en IDC_BUTTON1, para escribir su código:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 22

void CEjemploN6Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_ListCountries.GetText(m_ListCountries.GetCurSel(
),m_Transfer);
UpdateData(FALSE);
}

PASO 6: Agregar el contenido de un Edit Box a un List


Box.
Hacer doble clic en el IDC_BUTTON2(), para escribir su código:
void CEjemploN6Dlg::OnButton2()
{
// TODO: Add your control notification handler code here
UpdateData();
m_ListCountries.AddString(m_Add);
UpdateData(FALSE);
}

PASO 7: Agregar un elemento en una posición especifica


en la lista.
Hacer doble clic en el IDC_BUTTON3(), para escribir su código:
void CEjemploN6Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
UpdateData();
m_ListCountries.InsertString(m_ListCountries.SetCurS
el(3),m_Insert3);
UpdateData(FALSE);
}

PASO 8: Insertar un elemento arriba del elemento


seleccionado en la lista.
Hacer doble clic en el IDC_BUTTON4(), para escribir su código:
void CEjemploN6Dlg::OnButton4()
{
// TODO: Add your control notification handler code here
UpdateData();

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 23

m_ListCountries.InsertString(m_ListCountries.GetCurSel(
),m_InsertItem);
UpdateData(FALSE);
}

PASO 9: Borrar un elemento especifico de la lista.


Hacer doble clic en el IDC_BUTTON5(), para escribir su código:
void CEjemploN6Dlg::OnButton5()
{
// TODO: Add your control notification handler code here
m_ListCountries.DeleteString(4);
UpdateData(FALSE);
}

PASO 10: Borrar un elemento seleccionado de la lista.


Hacer doble clic en el IDC_BUTTON6(), para escribir su código:
void CEjemploN6Dlg::OnButton6()
{
// TODO: Add your control notification handler code here
m_ListCountries.DeleteString(m_ListCountries.Get
CurSel());
UpdateData(FALSE);
}

PASO 11: Limpiar la lista.


Hacer doble clic en el IDC_BUTTON7(), para escribir su código:
void CEjemploN6Dlg::OnButton7()
{
// TODO: Add your control notification handler code here
m_ListCountries.ResetContent();
}

CLASE CRICHEDITVIEW: La clase CRichEditView proporciona el


soporte para crear un “rich edit control”. Un “rich edit control”
es una vebntana en la cual el usuario puede entrar y editar
texto.

JEMPLO N° 7: APLICACIÓN RICH TEXT:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 24

PASO 1: Creando un Proyecto.


1.Ingresar al Visual C++.
2.Vaya al menú File - New y en la solapa Proyect seleccione App
Wizard (exe).
3.En proyect name escriba Ejemplo N° 7, en location indicar la
dirección donde se guardara la aplicación, luego OK.
4.En el Step 1 del asistente seleccionar la opción Múltiple
Documents.
5.Pulse Next. Deje por defecto los Step 1, sep 2, sep 3, sep 4 y
sep 5.
6.El el Step 6: determinar lo siguiente:
− Base Class = CRichEditView.
− Header File = ExoView.h
− Implementation File = ExoView.cpp
7.Pulse Finish y Aceptar el soporte OLE que aparece en el cuadro
de mensaje.
8.Luego aceptar el listado con las características de nuestras
aplicación.
9.En el menú principal del Visual C:
− Seleccione el menú Build, elegir Set Active Configuration.
− En la ventana que se muestra seleccionar Ejemplo N 7 – Win
32 Release y clic en OK.

PASO 2: Agregando Recursos.


1.Modificar el IDR_RICHTYPE:
− Seleccione Resource View en la ventana Workspace.
− Expanda la carpeta Menu.
− Doble clic en IDR_RICHTYPE. En la ventana que se muestra al
lado derecho agregar el menú Formato entre los menús Ver y
Ventana. Mueva el rectángulo en blanco entre los menús Ver y
Ventana luego clic con el botón derecho del mouse y entre a
sus propiedades y en la propiedad caption escribir &Formato.
− Debajo del menú Formato cree un submenú con caption =
&Fuente.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 25

2.En la ventana Workspace, clic en la solapa ResorceView:


− Expandir la carpeta Toolbar.
− Doble clic en IDR_MAINFRAME.
− Cree los botones siguientes con su identificador
correspondiente:

N: ID = ID_CHAR_BOLD
K: ID = ID_CHAR_ITALIC
S: ID = ID_CHAR_UNDERLINE.
T: ID = ID_CHAR_STRIKEOUT.
: ID = ID_PARA_LEFT.
: ID = ID_PARA_CENTER.
: ID = ID_PARA_RIGHT.

PASO 3: Agregando Código.


1.En la ventana Workspace, clic en la solapa FileView:
− Expandir Ejemplo N° 7 Files.
− Expandir Source Files.
− Doble clic en ExoView.cpp.
2.Realizar los siguientes cambios :
void CEjemploN7View::OnInitialUpdate()
{
CRichEditView::OnInitialUpdate();
CRichEditCtrl&rCtrl=GetRichEditCtrl();
CHARFORMAT cfm;
cfm.cbSize=sizeof(cfm);
cfm.dwMask=CFM_SIZE|CFM_ITALIC|CFM_BOLD|
CFM_UNDERLINE|CFM_STRIKEOUT|CFM_PROTECTED|
CFM_FACE;
cfm.dwEffects=0;

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 26

cfm.yHeight=240;
strcpy(cfm.szFaceName,"Times New Roman");
rCtrl.SetDefaultCharFormat(cfm);
// Set the printing margins (720 twips = 1/2 inch).
SetMargins(CRect(720, 720, 720, 720));
}

3.En la ventana workspace:


− Expanda la carpeta Header Files.
− Doble clic en ExoView.h
− Escriba el siguiente código.
// Implementation
public:
:
:
protected:
BOOL bBold;
BOOL bItalic;
BOOL bUnderline;
BOOL bStrikeout;
enum JUST {LEFT=0,CENTER,RIGHT} m_Justify;
// Generated message map functions

4.En la ventana workspace:


− Seleccione la solapa ClassView.
− Expanda la clase CEjemploN7View.
− Seleccione el constructor CEjemploN7View().
− Escribir el siguiente código:
// CEjemploN7View construction/destruction
CEjemploN7View::CEjemploN10View()
{
// TODO: add construction code here
m_Justify=LEFT;
bBold=FALSE;
bItalic=FALSE;
bUnderline=FALSE;
bStrikeout=FALSE;
}

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 27

5.Ingresar a la ventana ClassWizard, presionar Ctrl. + W.


− En la lista combinada Class Name elegir CEjemploN7View.
− En la lista Object IDs seleccionar ID_CHAR_BOLD.
− En la lista Messages seleccionar COMMAND, luego clic en el
botón Add Function y OK.
− Clic en el botón Edit Code y escribir el siguiente código:
void CEjemploN7View::OnCharBold()
{
// TODO: Add your command handler code here
bBold=!bBold;
OnCharEffect(CFM_BOLD,CFE_BOLD);
}

6.Ingrese a la ventana Class Wizard:


− En la lista combinada Class Name elegir CEjemploN7View.
− En la lista Object IDs seleccionar ID_CHAR_BOLD.
− En la lista Messages seleccionar UPDATE_COMMAND_UI, luego
clic en el botón Add Function y OK.
− Clic en el botón Edit Code y escribir el código siguiente:
void CEjemploN7View::OnUpdateCharBold(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(bBold);
}

7.Repetir los puntos 5 y 6 para ID_CHAR_ITALIC:


− Escriba el código siguiente para la función COMMAND:
void CEjemploN7View::OnCharItalic()
{
// TODO: Add your command handler code here
bItalic=!bItalic;
OnCharEffect(CFM_ITALIC,CFE_ITALIC);
}
− Escriba el código siguiente para la función
UPDATE_COMMAND_UI:
void CEjemploN7View::OnUpdateCharItalic(CCmdUI* pCmdUI)
{

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 28

// TODO: Add your command update UI handler code here


pCmdUI->SetCheck(bItalic);
}

8.Repetir los puntos 5 y 6 para ID_CHAR_UNDERLINE:


− Escriba el código siguiente para la función COMMAND:
void CEjemploN7View::OnCharUnderline()
{
// TODO: Add your command handler code here
bUnderline=!bUnderline;
OnCharEffect(CFM_UNDERLINE,CFE_UNDERLINE);
}
− Escriba el código siguiente para la función
UPDATE_COMMAND_UI:
void CEjemploN7View::OnUpdateCharUnderline(CCmdUI*
pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(bUnderline);
}

9.Repetir los puntos 5 y 6 para ID_CHAR_STRIKEOUT:


− Escriba el código siguiente para la función COMMAND:
void CEjemploN7View::OnCharStrikeout()
{
// TODO: Add your command handler code here
bStrikeout=!bStrikeout;
OnCharEffect(CFM_STRIKEOUT,CFE_STRIKEOUT);
}

− Escriba el código siguiente para la función


UPDATE_COMMAND_UI:
void CEjemploN7View::OnUpdateCharStrikeout(CCmdUI*
pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(bStrikeout);
}

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 29

10.Repetir los puntos 5 y 6 para ID_PARA_LEFT:


− Escriba el código siguiente para la función COMMAND:
void CEjemploN7View::OnParaLeft()
{
// TODO: Add your command handler code here
m_Justify=LEFT;
OnParaAlign(PFA_LEFT);
}

− Escriba el código siguiente para la función


UPDATE_COMMAND_UI:
void CEjemploN7View::OnUpdateParaLeft(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_Justify==LEFT);
}

11.Repetir los puntos 5 y 6 para ID_PARA_RIGHT:


− Escriba el código siguiente para la función COMMAND:
void CEjemploN7View::OnParaRight()
{
// TODO: Add your command handler code here
m_Justify=RIGHT;
OnParaAlign(PFA_RIGHT);
}

− Escriba el código siguiente para la función


UPDATE_COMMAND_UI:
void CEjemploN7View::OnUpdateParaRight(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_Justify==RIGHT);
}

12.Repetir los puntos 5 y 6 para ID_PARA_CENTER:


− Escriba el código siguiente para la función COMMAND:

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 30

void CEjemploN7View::OnParaCenter()
{
// TODO: Add your command handler code here
m_Justify=CENTER;
OnParaAlign(PFA_CENTER);
}

− Escriba el código siguiente para la función


UPDATE_COMMAND_UI:
void CEjemploN7View::OnUpdateParaCenter(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_Justify==CENTER);
}

PASO 4: Compilar y Ejecutar.

EJEMPLO N° 8: APLICACIÓN ARCHIVOS.

PASO 1:
1.Crear una aplicación basada en diálogo.
2. Escribir como Project Name Ejemplo N° 8.
3.Diseñar la ventana tal como se muestra a continuación

PASO 2: Propiedades y variables miembro.


1.ID = IDC_EDIT1: Como name = m_strApellido, type = CString.
2.ID = IDC_EDIT2: Como name = m_strNombre, type = CString.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 31

3.ID = IDC_EDIT3: Como name = m_Edad, type = int.


Propiedades en Style tildar Number, en extended style tildar
Right aligned text.
4.ID = IDC_BUTTON2: Tildar la propiedad Default Button en
Style.
5.ACEPTAR: Quitar el tilde a la propiedad Default Button.

PASO 3: Modificar el código del botón Cancel, haciendo doble


clic en botón.
void CEjemploN8Dlg::OnCancel()
{
// TODO: Add extra cleanup here

//CDialog::OnCancel();
}

PASO 4: Aplicando código.


1.Código del archivo EjemploN8Dlg.h:
// CEjemploN8Dlg dialog
class CEjemploN8Dlg : public CDialog
{
private:
struct Persona
{
char Apellido[20];
char Nombre[20];
int edad;
};
// Construction

2.Código del botón Guardar Datos:


void CEjemploN8Dlg::OnButton2()
{
// TODO: Add your control notification handler code here
struct Persona p;
CFile f;
int cr;
CString nr;

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 32

if(MessageBox("¿Guardar estos
datos?","Guardar",MB_YESNO|
MB_ICONQUESTION)==IDYES)
{
UpdateData(TRUE);
strcpy(p.Apellido,m_strApellido);
strcpy(p.Nombre,m_strNombre);
p.edad=m_Edad;
f.Open("datos.dat",CFile::modeCreate|
CFile::modeNoTruncate|
CFile::modeWrite);
f.SeekToEnd();
f.Write(&p,sizeof(p));
m_strApellido.Empty();
m_strNombre.Empty();
m_Edad=0;
UpdateData(FALSE);
AfxMessageBox("Datos guardados con éxito");
CWnd*pApe=(CWnd*)GetDlgItem(IDC_EDIT1);
pApe->SetFocus();
cr=f.GetLength()/sizeof(p);
nr.Format("Cantidad de registros: %i",cr);
SetWindowText(nr);
f.Close();
}
}

3.Código del botón Ver Datos:


void CEjemploN8Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
struct Persona p;
CFile f;
int pos;
f.Open("datos.dat",CFile::modeCreate|
CFile::modeNoTruncate|CFile::modeRead);
if(pos = f.GetLength())
{

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 33

f.Seek(pos,CFile::begin);
f.Read(&p,sizeof(p));
m_strApellido=p.Apellido;
m_strNombre=p.Nombre;
m_Edad=p.edad;
UpdateData(FALSE);
}
f.Close();
}

4.Código del botón Limpiar:


void CEjemploN8Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_strApellido.Empty();
m_strNombre.Empty();
m_Edad=0;
UpdateData(FALSE);
}

PASO 5: Compilar y Ejecutar.

CLASE CPEN: La clase CPen permite definir la pluma a utilizar


con las funciones de dibujo. Esta herramienta afecta la forma en
la que son dibujadas. Las líneas pueden ser sólidas, líneas
discontinuas, etc. También puede afectarlos bordes de las
figuras cerradas ya sean rectángulos, elipses, etc.

CLASE CBRUSH: La clase CBrush permite definir el pincel a


utilizar con las funciones de dibujo. Esta herramienta afecta a la
forma en la que es pintado el interior de las figuras cerradas.

CLASE CDC: La clase CDC define una clase de objetos llamados


“contextos de dispositivo”. El objeto CDC contiene funciones
miembros para trabajar con un contexto dispositivo, tal como
una pantalla o impresora, así como funciones para trabajar con
un contexto pantalla asociado con el área del cliente. Para crear
un DC, primero se crea un objeto de la clase base CDC y luego

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 34

se llama las funciones miembros que usan contextos


dispositivos.

EJEMPLO N° 9: DESARROLLO DE LA APLICACIÓN DIBUJO


DE OBJETOS.

PASO 1: Creando un Proyecto.


1.Ingrese a Visual C++.
2.Vaya al menú File – New y en la solapa Project seleccione MFC
App Wizard (exe).
3.Como Project Name escriba Ejemplo N° 9, en location indicar
el directorio donde se guardará la aplicación. Pulse OK.
4.En el Step 1 seleccionar la opción Single Document.
5.Deje por defecto los pasos 2, 3, 4, 5 y 6.
6.Luego clic enel botón Finish, OK y listo.

PASO 2: Introduciendo Código.


1.En la ventana Workspace seleccione la solapa Class View.
Expanda la clase CEjemploN9View, elija la función
OnDraw(CDC*pDC).
2.Digite el código para la función OnDraw(CDC*pDC):
void CEjemploN14View::OnDraw(CDC* pDC)
{
CEjemploN14Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->TextOut(200,200,"Hola Mundo");
}

3.Ejecutar el programa.

PASO 3: Graficar una Línea:


1.Adicionar el código a la función OnDraw(CDC*pDC):
//Dibuja una línea Diagonal
pDC->LineTo(100,100);
pDC->TextOut(60,20,"<-Línea Diagonal");
2.Ejecutar el programa.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 35

PASO 4: Graficar una Elipse:


1.Adicionar el código a la función OnDraw(CDC*pDC):
//Dibuja una Elipse
pDC->Ellipse(200,10,300,70);
pDC->TextOut(310,20,"<-Elipse");
2.Ejecutar el programa.
PASO 5: Dibujar uan Cuerda:
1.Adicionar el código a la función OnDraw(CDC*pDC):
//Dibuja una cuerda
pDC->Chord(10,100,100,200,20,125,120,175);
pDC->TextOut(70,130,"<-Cuerda");
2.Ejecutar el programa.

PASO 6: Dibuja un Sector Circular:


1.Adicionar el código a la función OnDraw(CDC*pDC):
//Dibuja un sector circular
pDC->Pie(200,100,300,200,200,150,250,100);
pDC->TextOut(300,130,"<-Sector");
2.Ejecutar el programa.

PASO 7: Dibujo de un Rectángulo:


1.Adicionar el código a la función OnDraw(CDC*pDC):
//Dibuja un recangulo
pDC->Rectangle(10,250,100,300);
pDC->TextOut(110,280,"<-Rectangulo");
2.Ejecutar el programa.

PASO 8: Usando la clase CPen para modificar el filete a


los dibujos:
1.Adicionar el código a la función OnDraw(CDC*pDC), antes del
código que dibuja las figuras:
//Modifica la forma de los dibujos
CPen*n_pincel=new CPen;
n_pincel->CreatePen(PS_SOLID,6,RGB(255,0,0));
pDC->SelectObject(n_pincel);
2.Ejecutar el programa.

René J. Hercilla Valdivia. CEO “PERÚ”


VISUAL C + + 36

PASO 9: Usando la clase CBrush para modificar el interior


(relleno) de los dibujos:
1.Adicionar el código a la función OnDraw(CDC*pDC), antes del
código que dibuja las figuras:
//Modifica el interior de los dibujos
CBrush*n_brocha=new CBrush;
n_brocha-
>CreateHatchBrush(HS_CROSS,RGB(255,0,0));
pDC->SelectObject(n_brocha);
2.Ejecutar el programa.

René J. Hercilla Valdivia. CEO “PERÚ”