47
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.). René J. Hercilla Valdivia. CEO “PERÚ”

Separata de Visual C++

Embed Size (px)

Citation preview

Page 1: Separata de Visual C++

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

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

Page 2: Separata de Visual C++

VISUAL C + + 2

métodos o funciones miembro). Es decir un objeto, por una 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Ú”

Page 3: Separata de Visual C++

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Ú”

Page 4: Separata de Visual C++

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

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

Page 5: Separata de Visual C++

VISUAL C + + 5

texto en el centro y además otra ventana (más pequeña, el Acerca de…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.

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

Page 6: Separata de Visual C++

VISUAL C + + 6

3. Escribamos entonces el código para mostrar nuestro mensaje:

void CEjemploN1Dlg::OnButton1() {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.

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

Page 7: Separata de Visual C++

VISUAL C + + 7

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.

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.

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

Page 8: Separata de Visual C++

VISUAL C + + 8

CLASE CSTRING: Un objeto CString tiene una cadena de caracteres de longitud variable. La clase CString provee muchas 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);

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

Page 9: Separata de Visual C++

VISUAL C + + 9

edTexto->GetWindowText (strDato);SetWindowText(strDato);

}

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.

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

Page 10: Separata de Visual C++

VISUAL C + + 10

1. Presionar Ctrl. + F7 para compilar.2. Presionar Ctrl. + F5 par ejecutar.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.

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

Page 11: Separata de Visual C++

VISUAL C + + 11

3. Dentro del archivo Ejemplo N° 5Dlg.cpp, declare los objetos de la clase base Cbutton, como muestra el código siguiente:

// Ejemplo N° 3Dlg.cpp : implementation file//#include "stdafx.h"#include "Ejemplo N° 3.h"::#endifCButton 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);

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

Page 12: Separata de Visual C++

VISUAL C + + 12

//Create un auto check box.myButton4.Create(_T("Auto check box"),WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,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:

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

Page 13: Separata de Visual C++

VISUAL C + + 13

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.

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.

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

Page 14: Separata de Visual C++

VISUAL C + + 14

- 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.

- 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.

2. Debemos 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)

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

Page 15: Separata de Visual C++

VISUAL C + + 15

{//{{AFX_DATA_INIT(CEjemploN4Dlg)m_Marca = 0;m_Tipo = 0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent

DestroyIcon in Win32m_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 hereCDialog::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);

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

Page 16: Separata de Visual C++

VISUAL C + + 16

wndAuto->GetWindowText(strAuto);wndTipo->GetWindowText(strTipo);strMensa="Su auto es un/a: "+strTipo+"

"+strAuto+" "+strExtra;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:

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

Page 17: Separata de Visual C++

VISUAL C + + 17

PASO 2: Propiedades y Variables Miembro: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 hereif(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() {

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

Page 18: Separata de Visual C++

VISUAL C + + 18

// TODO: Add your control notification handler code hereCString 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.m_lstNumeros.ResetContent();//Verifica el contenido de la variablefor (i=1;i<=m_Cant;i++){

c.Format("%s%i",c,i);//formatea i como stringm_lstNumeros.AddString(c);//lo agrego a la listac="";

}}

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 hereCString 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 hereint i,n,ce;CString strC;ce=m_lstNumeros.GetCount();if(ce>0)

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

Page 19: Separata de Visual C++

VISUAL C + + 19

for(i=0;i<ce;i++){

m_lstNumeros.GetText(i,strC);//obtengo elementon=atoi(strC);//lo convierto a numéricoif(n%2==0)//averiguo si es par{

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 hereint 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.

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

Page 20: Separata de Visual C++

VISUAL C + + 20

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:

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.

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

Page 21: Separata de Visual C++

VISUAL C + + 21

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(){

CDialog::OnInitDialog();::// TODO: Add extra initialization herem_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);

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

Page 22: Separata de Visual C++

VISUAL C + + 22

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:void CEjemploN6Dlg::OnButton1() {

// TODO: Add your control notification handler code herem_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 hereUpdateData();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 hereUpdateData();m_ListCountries.InsertString(m_ListCountries.SetCurSel(3),m_Insert3);UpdateData(FALSE);

}

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

Page 23: Separata de Visual C++

VISUAL C + + 23

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 hereUpdateData();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 herem_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 herem_ListCountries.DeleteString(m_ListCountries.GetCurSel());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 herem_ListCountries.ResetContent();}

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

Page 24: Separata de Visual C++

VISUAL C + + 24

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:

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.cpp7. 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

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

Page 25: Separata de Visual C++

VISUAL C + + 25

entre a sus propiedades y en la propiedad caption escribir &Formato.

Debajo del menú Formato cree un submenú con caption = &Fuente.

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_BOLDK: ID = ID_CHAR_ITALICS: 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();

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

Page 26: Separata de Visual C++

VISUAL C + + 26

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;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.// Implementationpublic:::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/destructionCEjemploN7View::CEjemploN10View(){

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

Page 27: Separata de Visual C++

VISUAL C + + 27

// TODO: add construction code herem_Justify=LEFT;bBold=FALSE;bItalic=FALSE;bUnderline=FALSE;bStrikeout=FALSE;

}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 herebBold=!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

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

Page 28: Separata de Visual C++

VISUAL C + + 28

bItalic=!bItalic;OnCharEffect(CFM_ITALIC,CFE_ITALIC);

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

UPDATE_COMMAND_UI:void CEjemploN7View::OnUpdateCharItalic(CCmdUI* pCmdUI) {

// 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 herebUnderline=!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 herebStrikeout=!bStrikeout;OnCharEffect(CFM_STRIKEOUT,CFE_STRIKEOUT);

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

Page 29: Separata de Visual C++

VISUAL C + + 29

}

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);}

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 herem_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 herem_Justify=RIGHT;OnParaAlign(PFA_RIGHT);

}

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

Page 30: Separata de Visual C++

VISUAL C + + 30

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:void CEjemploN7View::OnParaCenter() {

// TODO: Add your command handler code herem_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

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

Page 31: Separata de Visual C++

VISUAL C + + 31

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.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 dialogclass CEjemploN8Dlg : public CDialog{private:

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

Page 32: Separata de Visual C++

VISUAL C + + 32

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 herestruct Persona p;CFile f;int cr;CString nr;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);

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

Page 33: Separata de Visual C++

VISUAL C + + 33

SetWindowText(nr);f.Close();

}}

3. Código del botón Ver Datos:void CEjemploN8Dlg::OnButton3() {

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

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 herem_strApellido.Empty();m_strNombre.Empty();m_Edad=0;UpdateData(FALSE);

}

PASO 5: Compilar y Ejecutar.

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

Page 34: Separata de Visual C++

VISUAL C + + 34

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 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):

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

Page 35: Separata de Visual C++

VISUAL C + + 35

void CEjemploN14View::OnDraw(CDC* pDC){

CEjemploN14Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data herepDC->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 DiagonalpDC->LineTo(100,100);pDC->TextOut(60,20,"<-Línea Diagonal");

2. Ejecutar el programa.

PASO 4: Graficar una Elipse:1. Adicionar el código a la función OnDraw(CDC*pDC):

//Dibuja una ElipsepDC->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 cuerdapDC->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 circularpDC->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:

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

Page 36: Separata de Visual C++

VISUAL C + + 36

1. Adicionar el código a la función OnDraw(CDC*pDC)://Dibuja un recangulopDC->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 dibujosCPen*n_pincel=new CPen;n_pincel->CreatePen(PS_SOLID,6,RGB(255,0,0));pDC->SelectObject(n_pincel);

2. Ejecutar el programa.

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 dibujosCBrush*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Ú”

Page 37: Separata de Visual C++

VISUAL C + + 37

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