La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS. Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

Presentaciones similares


Presentación del tema: "PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS. Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación."— Transcripción de la presentación:

1 PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS

2 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 2 zEstructura de un programa WindowsEstructura de un programa Windows zMensajesMensajes zCompilación de un programa WindowsCompilación de un programa Windows zAportaciones de la programación en WindowsAportaciones de la programación en Windows zEjemplos de mensajesEjemplos de mensajes

3 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 3 zDiseño de interfaces zTransparencia zMultitarea Aportaciones de la programación en Windows

4 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 4 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

5 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 5 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);

6 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 6 Compilación de un programa Windows (3) Archivos RC: /*generic.rc */ #include #include “generic.h” generic ICON generic.ico generic MENU BEGIN MENUITEM “&Do It!” IDM_DOIT MENUITEM “&Quit”, IDM_QUIT END

7 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 7 Compilación de un programa Windows (y 4) Archivos DEF: NAMEGENERIC DESCRIPTION‘generic windows program’ EXETYPEWINDOWS STUB‘WINSTUB.EXE’ CODEPRELOAD MOVEABLE DATAPRELOAD MOVEABLE MULTIPLE HEAPSIZE1024 STACKSIZE5120 EXPORTSWndProc

8 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 8 Estructura de un programa Windows La mayoría de los programas en Windows tienen dos funciones comunes: - Winmain() - WndProc()

9 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 9 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.

10 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 10 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.

11 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 11 Estructura de un programa Windows (4) #include 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;

12 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 12 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); }

13 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 13 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, hInstance, NULL); ShowWindow (hwnd, nCmdShow); UpdateWindow (hwnd);

14 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 14 Estructura de un programa Windows (7) while (TRUE == GetMessage (&Message,0,0,0)) { TranslateMessage (&Message); DispatchMessage (&Message); }

15 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 15 Estructura de un programa Windows (8) long FAR PASCAL WndFunction (HWND hWnd, WORD wMsg, WORD wParam, LONG lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect;

16 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 16 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 | DT_VCENTER); EndPaint (hWnd, &ps); return (0); break; case WM_DESTROY: PostQuitMessage (0); return (0); break; default: return (DefWindowProc (hWnd, wMsg, wParam, lParam)); }

17 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 17 Mensajes Interrupciones “Hardware” Cola de mensajes GetMessage() TranslateMessage() DispatchMessage() WndProc() DefWindowProc() Hook() Bucle de mensajes Lógica y acciones del programa Procesado de mensajes “por defecto”

18 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 18 Mensajes (2) Cola de mensajes Bucle de mensajes WndProc() Hardware PostMessage() TransMessage SendMessage() Otras aplicaciones. PostMessage() Otras aplicaciones. SendMessage() DispatchMessage()

19 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 19 Mensajes (3) /* Estructura mensaje*/ typedef struct tagMSG { HWND hwnd; WORD message; WORDwparam; LONGlparam; DWORDtime; POINTpt; } MSG; typedef MSG*PMSG typedef MSG NEAR*NPMSG typedef MSG FAR*LPMSG

20 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 20 Mensajes (y 4) Funciones para controlar la prioridad de las aplicaciones: - GetMessage() - PeekMessage() - WaitMessage()

21 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 21 Ejemplos de Mensajes BM_ : Mensaje de botón. BM_GETCHECK BM_SETCHECK

22 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 22 Ejemplos de Mensajes (2) CB_: Mensaje de “Combo Box” CB_ADDSTRING CB_FINDSTRING CB_FINDSTRINGEXACT CB_GETCURSEL CB_GETLBTEXT CB_GETLBTEXTLENGTH CB_SELECTSTRING

23 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 23 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

24 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 24 Ejemplos de Mensajes (4) SBM_: Mensaje de “Scroll Box” SBM_GETPOS SBM_GETRANGE SBM_GETSCROLLINFO SBM_SETPOS SBM_SETRANGE SBM_SETSCROLLINFO

25 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 25 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 Ejemplos de Mensajes (5)

26 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 26 Ejemplos de Mensajes (6) WM_PAINT WM_QUIT WM_HSCROLL WM_VSCROLL WM_SETTEXT WM_TIMER

27 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 27 Ejemplos de Mensajes (7) Mensaje WM_PAINT Definición: 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.

28 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 28 Descripción: Este mensaje no tiene parámetros. Valor de retorno: Una aplicación debe retornar con cero si procesa este mensaje. Ejemplos de Mensajes (8)

29 Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N. 29 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. Ejemplos de Mensajes (y 9)

30 PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS


Descargar ppt "PROGRAMACIÓN MULTIMEDIA PROGRAMACIÓN EN WINDOWS. Programación MultimediaProgramación en Windows © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación."

Presentaciones similares


Anuncios Google