PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS



Documentos relacionados
Windows API. 17 de Agosto de UCSC, Concepción, Chile. Windows API. Ronald Valenzuela Fica. Windows API. Ejemplos. Hello World Unicode

Trascripción del curso alojado en la página: Febrero de Salvador Pozo,

Paradigmas de Programación

Clase 2: Utilización de MFC

UNIDAD I.- INTRODUCCIÓN A LA GRAFICACIÓN POR COMPUTADORA

Implementación cliente servidor mediante sockets

Tutorial de c++ grafico por BlackShadow7777

Introducción a la Programación Orientada a Objetos con C++

Tema 7: Fundamentos de la programación sobre MS-Windows.

LENGUAJE. Tema 1 - Introducción

Uso de la barra de tareas de Windows

Programación en Windows y MFCs

Se guardan en archivos con extencion c y los cabezales con extension h

UNIVERSIDAD DEL ISTMO Ingeniería en computación Estructura de datos

PROGRAMACIÓN C++ EN AMBIENTE WINDOWS. Capítulo 3

HDC hdc=null; // Dispositivo de contexto GDI HGLRC hrc=null; // Contexto de renderizado

Proyecto de ISIII. Pruebas Extra. Pruebas de Caja Blanca

Autores: Salazar Ramírez Norman Francisco Cota Ortiz Maria de Gudalupe Flores Pérez Pedro

Capítulo 1 EMBEDDED VISUAL C++ (EVC)

PROBLEMA DE INGENIERÍA

BIENVENIDOS A LA API DE WINDOWS EN VB

Amb el suport de la Factoria de Recursos Docents de la UPC

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Trabajo Práctico N 4 Sockets

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Examen Principios de Programación Febrero 2012

Mensajes. Interbloqueo

Departamento de Seguridad en Cómputo UNAM-CERT

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

LnxComm. Linux Communication. Fernando Pujaico Rivera

El lenguaje de Programación C. Fernando J. Pereda

Prof. Dr. Paul Bustamante

INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO

Instituto Politécnico Nacional

Programación: QBASIC

Tema: Arreglos de Objetos en C++.

Interoperabilidad con código no administrado

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Tema 2. El lenguaje de programación Java (Parte 1)

Organizando mi clase en el GES Material de apoyo

Práctica 3ProgramacionRS232: Programación básica de la RS232

Tema: Clases y Objetos en C++.

Programación de Sonido con DirectX

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Prof. Dr. Paul Bustamante

Mensajes. (versión preliminar)

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELAS DE INGENIERÍA EN COMPUTACIÓN Y ELECTRÓNICA

Interfaz de Programación del Controlador MCA

Guía de instalación y manejo de la Ficha Docente CONEAU Incentivos

Tema: INTÉRPRETE ENSAMPOCO/3

Elementos léxicos del lenguaje de programación Java

Dentro del.net los eventos se utilizan para notificar a nuestros objetos que se ha producido algún tipo de hecho al que nos hemos suscrito.

Práctica 6. Periféricos Avanzados. Programación del Disco Duro a través de la interfaz IDE. Lectura de la tabla de particiones.

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Otras herramientas de copia

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

El lenguaje C: Elementos básicos del lenguaje

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Simulador de conducción de una fumigadora con banderillero satelital.

Curso Introducción JAVA Pág.: 1

RPC. Llamadas a Procedimientos Remotos (RPC) Paradigmas. Conceptos. Modelo Conceptual

2. Estructura de un programa en Java

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Sistema de Archivos en Java

Vdd MIC Vss PF.0 CS DI DAT CLK PE.7 PD.4 PD.5 PB.0. CAN-054, Utilización de tarjetas MMC en bajo nivel

ADT GStreamer API Manipulación de dispositivos de captura de vídeo mediante GStreamer en C++

Midiendo el tiempo de ejecución de un programa en Windows

GUÍA DE TRABAJO N 3 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 10. Tema: APLICACIONES WINDOWS FORMS LENGUAJE C#

DOCUMENTO TÉCNICO INFORMATIVO

LENGUAJE ANSI C Guía de referencia

Gráficos por Computador

Diseño visual. Creacion de un modulo para la API

SOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Introducción al Dev-C++

Práctica 8: Barreras

CLASE # 5 TÉCNICAS DE CAJA BLANCA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

INTERACCIÓN ENTRE UN T2app Y UNA APLICACIÓN Ver 1.06 c

INSTALACIÓN DE LAS IMPRESORAS DEL CRAI

Para poder acceder al sistema sólo deberá ingresar la siguiente liga desde el navegador de su preferencia:

PROCEDIMIENTOS ALMACENADOS. CREATE PROCEDURE nombreprocedimiento tipodato [=valordefecto]][,...]

Power Point. En la imagen siguiente, se muestra el espacio de trabajo de Power Point. Manual Microsoft Office MS Power Point

PROTEUS Depuración de programas para microprocesadores

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

Problemas de Redes de Computadores. Conjunto de problemas 1

Transcripción:

PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS

Aportaciones de la programación en Windows Compilación de un programa Windows Estructura de un programa Windows Mensajes Ejemplos de mensajes 2

Aportaciones de la programación en Windows Diseño de interfaces Transparencia Multitarea 3

Compilación de un programa Windows - Diferencia los recursos (menús, iconos, diálogos, bitmaps) del código. - Archivos implicados: *.rc, *.ico -> *.res *.c, *.h -> *.obj *.obj, *.res, *.def -> *.exe 4

Compilación de un programa Windows (2) /* generic.h*/ #define IDM_DOIT 1 #define IDM_QUIT 2 int ghinstance; char gszappname[] = generic ; long FAR PASCAL WndProc (HWND, unsigned, WORD, LONG); 5

Compilación de un programa Windows (3) Archivos RC: /*generic.rc */ #include <windows.h> #include generic.h generic ICON generic.ico generic MENU BEGIN END MENUITEM &Do It! MENUITEM &Quit, IDM_DOIT IDM_QUIT 6

Compilación de un programa Windows (y 4) Archivos DEF: NAME GENERIC DESCRIPTION generic windows program EXETYPE WINDOWS STUB WINSTUB.EXE CODE PRELOAD MOVEABLE DATA PRELOAD MOVEABLE MULTIPLE HEAPSIZE 1024 STACKSIZE 5120 EXPORTS WndProc 7

Estructura de un programa Windows La mayoría de los programas en Windows tienen dos funciones comunes: - Winmain() - WndProc() 8

Estructura de un programa Windows (2) WinMain() - Es el punto de entrada y salida del programa. - Se encarga del aspecto de la ventana principal. - Contiene el bucle de mensajes. 9

Estructura de un programa Windows (3) WndProc() - Se la conoce como función de procesado de mensajes. - En ella se escribe el código del programa. 10

Estructura de un programa Windows (4) #include <windows.h> long FAR PASCAL WndFunction (HWND, WORD, WORD, LONG); int PASCAL WinMain (HANDLE hinstance, HANDLE hprevinstance, LPSTR lpcmdline, int ncmdshow) { static char szappname[]= "GENERIC", sztitlebar[]= "Title Bar"; HWND hwnd; WNDCLASS wndclass; MSG msg; 11

Estructura de un programa Windows (5) if (! hprevinstance) { wndclass.style = CS_HREDRAW CS_VREDRAW; wndclass.lpfnwndproc = WndFunction; wndclass.cbclsextra = 0; wndclass.cbwndextra = 0; wndclass.hinstance = hinstance; wndclass.hicon = LoadIcon (NULL, IDI_APPLICATION); wndclass.hcursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrbackground= GetStockObject (WHITE_BRUSH); wndclass.lpszmenuname = NULL; wndclass.lpszclassname= szappname; } RegisterClass (&wndclass); 12

Estructura de un programa Windows (6) hwnd= CreateWindow (szappname, sztitlebar, WS_OVERLAPPEDWINDOW, 0, /* x position for this window */ 0, /* y position for this window */ 320, /* window width is 320 dots */ 240, /* window height is 240 dots */ NULL, NULL, hinstance, NULL); ShowWindow (hwnd, ncmdshow); UpdateWindow (hwnd); 13

Estructura de un programa Windows (7) while (TRUE == GetMessage (&Message,0,0,0)) { } TranslateMessage (&Message); DispatchMessage (&Message); } 14

Estructura de un programa Windows (8) long FAR PASCAL WndFunction (HWND hwnd, WORD wmsg, WORD wparam, LONG lparam) { HDC PAINTSTRUCT RECT hdc; ps; rect; 15

Estructura de un programa Windows (y 9) switch (wmsg) { case WM_PAINT: hdc= BeginPaint (hwnd, &ps); GetClientRect (hwnd, &rect); DrawText (hdc, "Application Window", -1, &rect, DT_SINGLELINE DT_CENTER EndPaint (hwnd, &ps); return (0); break; DT_VCENTER); case WM_DESTROY: PostQuitMessage (0); return (0); break; } default: return (DefWindowProc (hwnd, wmsg, wparam, lparam)); } 16

Interrupciones Hardware Mensajes Cola de mensajes GetMessage() TranslateMessage() DispatchMessage() Bucle de mensajes Hook() WndProc() Lógica y acciones del programa DefWindowProc() Procesado de mensajes por defecto 17

Hardware Mensajes (2) Cola de mensajes Bucle de mensajes PostMessage() TransMessage Otras aplicaciones. PostMessage() Otras aplicaciones. SendMessage() WndProc() DispatchMessage() SendMessage() 18

/* Estructura mensaje*/ typedef struct tagmsg { HWND hwnd; WORD message; WORD wparam; LONG lparam; DWORD time; POINT pt; } MSG; Mensajes (3) typedef MSG typedef MSG NEAR typedef MSG FAR *PMSG *NPMSG *LPMSG 19

Mensajes (y 4) Funciones para controlar la prioridad de las aplicaciones: - GetMessage() - PeekMessage() - WaitMessage() 20

Ejemplos de Mensajes BM_ : Mensaje de botón. BM_GETCHECK BM_SETCHECK 21

Ejemplos de Mensajes (2) CB_: Mensaje de Combo Box CB_ADDSTRING CB_FINDSTRING CB_FINDSTRINGEXACT CB_GETCURSEL CB_GETLBTEXT CB_GETLBTEXTLENGTH CB_SELECTSTRING 22

Ejemplos de Mensajes (3) EM_: Mensaje de caja de texto EM_LIMITTEXT LB_: Mensaje de List Box LB_ADDSTRING LB_GETCURSEL LB_GETTEXT LB_GETTEXTLEN LB_INSERTSTRING 23

Ejemplos de Mensajes (4) SBM_: Mensaje de Scroll Box SBM_GETPOS SBM_GETRANGE SBM_GETSCROLLINFO SBM_SETPOS SBM_SETRANGE SBM_SETSCROLLINFO 24

Ejemplos de Mensajes (5) WM_: Todos los demás mensajes WM_CHAR WM_KEYDOWN WM_KEYUP WM_CREATE WM_DEADCHAR WM_GETMINMAXINFO WM_GETTEXT WM_GETTEXTLENGTH WM_INITDIALOG WM_DESTROY 25

Ejemplos de Mensajes (6) WM_: Todos los demás mensajes WM_PAINT WM_QUIT WM_HSCROLL WM_VSCROLL WM_SETTEXT WM_TIMER 26

Ejemplos de Mensajes (7) Definición: Mensaje WM_PAINT Una aplicación envia un mensaje WM_PAINT cuando Windows u otra aplicación hace una petición para pintar una porción de la ventana de la aplicación. El mensaje es enviado cuando las funciones UpdateWindow o RedrawWindow son llamadas o por la función DispatchMessage cuando la aplicación obtiene un mensaje WM_PAINT tras el uso de las funciones GetMessage o PeekMessage. 27

Descripción: Ejemplos de Mensajes (8) Este mensaje no tiene parámetros. Valor de retorno: Una aplicación debe retornar con cero si procesa este mensaje. 28

Ejemplos de Mensajes (y 9) Acción por defecto: La función DefWindowProc valida la región a actualizar. La función también enviará un mensaje WM_NCPAINT al procedimiento de ventana si el marco de la ventana ha de ser pintado y envía un mensaje WM_ERASEBKGND si el fondo de la ventana debe ser borrado. 29

PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS