nffffff

Páginas: 15 (3503 palabras) Publicado: 20 de mayo de 2013
Universidad Nacional de
Ingeniería
Ingeniería Mecánica

Gráficos en
Visual C++

1

Para gráficos (incluyendo texto) en Visual C++ Windows
utiliza la interfaz Graphics Device Interfaz (GDI) lo que llama
a los gestores de dispositivo ya sea de video, impresora o
trazadores de gráficos ya establecidos.

Se tiene a la
interfaz GDI
que provee de
la aplicación y
va al
dispositivo19/11/2009

Ing. Daniel Osorio Maldonado

2

Contexto de Dispositivo

Windows no permite el acceso directo al hardware de
visualización, lo hace utilizando un nivel de abstracción
denominado contexto de dispositivo (DC).
Un contexto de dispositivo (DC) es una estructura de datos,
mantenida internamente por el GDI que contiene los
atributos básicos para graficar o poner un texto.
Unejemplo es el OnDraw en
Visual C++.
La ventanita que se aprecia fue
confeccionada en un SDI
(Single document)

19/11/2009

Ing. Daniel Osorio Maldonado

3

Atributos del Contexto de
Dispositivo
Cuando Windows crea un dispositivo asigna
valores por omisión para todos los atributos.
Para que una aplicación pueda obtener o
modificar cualquiera de estos atributos , la
GDIproporciona las funciones que a
continuación se detallan.

19/11/2009

Ing. Daniel Osorio Maldonado

4

ATRIBUTOS

POR OMISION

MODIFICAR

OBTENER

Modo de
conversión

M_MTEXT

SetMapMode

GetMapMode

Origen de
ventana

(0,0)

SetWindowOrg
OffSetWindowOrg

GetWindowOrg

Tamaño lógico de (1,1)
la ventana lógica

SetWindowExt
SetMapMode

GetWindowExp

Origen dela
superficie de la
proyección

(0,0)

SetViewportOrg
OffsetViewportOrg

GetViewportOrg

Tamaño de la
superficie de
proyección

(1,1)

SetViewportExt
SetMapMode

GetViewportExt

Pluma

BLACK_PEN

SelecObject

SelecObject

19/11/2009

Ing. Daniel Osorio Maldonado

5

ATRIBUTOS

POR OMISION

MODIFICAR

Posición actual
de la pluma

(0,0)

MoveTo,LineTo, GetCurrentPositi
ArcTO, PolylineTo on

Pincel

WHITE_BRUSH

SelecObject

SelecObject

Origen del pincel (0,0)

SetBrushOrg

GetBrushOrg

Color de texto

Negro

SetTextColor

GetTextColor

Fuente

SISTEM_FONT

SelecObject

SelecObject

Mapa de bits

Ninguno

SelecObject

SelecObject

Color de fondo

Blanco

SetBkColor

GetBkColor

Modo de fondoOPAQUE

SetBkMode

GetBkMode

19/11/2009

Ing. Daniel Osorio Maldonado

OBTENER

6

ATRIBUTOS

POR OMISION

MODIFICAR

OBTENER

Modo de dibujo

R2_copypen

SetROP2

GetROP2

Modo de ajuste

BLACKONWHITE SetStrechBltMode

GetStrechBltMode

Modo de relleno

ALTERNATE

GetPolyFillMode

SetPolyFillMode

Con estas funciones básicas se puede graficar enpantalla de dispositivo así como en Visual C++

19/11/2009

Ing. Daniel Osorio Maldonado

7

Objetos GDI
La GDI de Windows emplea herramientas de dibujo, incluyendo plumas , pinceles
tipos de letra, mapas bits, paleta de color y regiones, que se contempla en MFC.
//DIBUJA Y RELLENA UNA ELIPSE DE COLOR AMARILLO
CElipseView::OnPaint()
{
static DWORDdwColor[9]={RGB(0,0,0),RGB(255,0,0), RGB(0,255,0),RGB(0,0,255),
RGB(255,255,0),RGB(255,0,255), RGB(0,255,255),RGB(128,128,128),
RGB(255,255,255)};
POINT polylpts[4], polygpts[5];
int xcoord;
CBrush n_brocha;
CBrush *v_brocha;
CPen n_pincel;
CPen *v_pincel;
n_pincel.CreatePen(PS_SOLID, 2,dwColor[3]);
//n_pincel.CreatePen(PS_SOLID, ancho de la línea de borde, dwColor [color de la
línea de borde]);v_pincel=dc.SelectObject(&n_pincel);
n_brocha.CreateSolidBrush(dwColor[4]);
//n_brocha.CreateSolidBrush(dwColor[color del relleno])
19/11/2009

Ing. Daniel Osorio Maldonado

8

v_brocha=dc.SelectObject(&n_brocha);
dc.Ellipse(475,400,100,150);//los dos primeros dan las dimensiones de la elipse
//superior ,los otros 2 dan la ubicación de los puntos uno de la parte derecha
//el otro de la parte izquierda...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS