Tabla de contenido

0 Introducción
0.1 Requisitos previos
0.2 Independencia de la máquina
0.3 Recursos
0.4 Ventanas
0.5 Eventos
0.6 Proyectos
0.7 Convenciones
0.8 Controles
1 Componentes de una ventana
1.1 El borde de la ventana
1.2 Barra de título
1.3 Caja de minimizar
1.4 Caja de maximizar
1.5 Caja de cerrar
1.6 Caja de control de menú
1.7 Menú
1.8 Barra de menú
1.9 Barra de desplazamiento horizontal
1.10 Barra de desplazamiento vertical
1.11 El área de cliente
2 Notación húngara
2.1 Ejemplos
3 Estructura de un programa Windows GUI
3.1 Ficheros de cabecera
3.2 Prototipos
3.3 Función de entrada, WinMain
3.3.1 Parámetros de entrada de WinMain
3.3.2 Función WinMain típica
3.3.3 Declaración
3.3.4 Inicialización
3.3.5 Bucle de mensajes
3.4 Definición de funciones
4 El procedimiento de ventana
4.1 Sintaxis
4.2 Prototipo de procedimiento de ventana
4.3 Implementación de procedimiento de ventana simple
4.4 Primer ejemplo de programa Windows GUI
5 Menús 1
5.1 Usando las funciones para inserción ítem a ítem
5.2 Uso básico de MessageBox
5.3 Respondiendo a los mensajes del menú
5.4 Ejemplo 2
5.5 Ficheros de recursos
5.6 Cómo usar los recursos de menú
5.7 Ejemplo 3
6 Diálogo básico
6.1 Ficheros de recursos
6.2 Procedimiento de diálogo
6.3 Sintaxis
6.4 Prototipo de procedimiento de diálogo
6.5 Implementación de procedimiento de diálogo para nuestro ejemplo
6.6 Pasar parámetros a un cuadro de diálogo
6.7 Ejemplo 4
7 Control básico Edit
7.1 Fichero de recursos
7.2 El procedimiento de diálogo y los controles edit
7.3 Variables a editar en los cuadros de diálogo
7.4 Iniciar controles edit
7.5 Devolver valores a la aplicación
7.6 Añadir la opción de cancelar
7.7 Ejemplo 5
7.8 Editar números
7.9 Fichero de recursos para editar enteros
7.10 Variables a editar en los cuadros de diálogo
7.11 Iniciar controles edit de enteros
7.12 Devolver valores a la aplicación
7.13 Ejemplo 6
8 Control básico ListBox
8.1 Ficheros de recursos
8.2 Iniciar controles listbox
8.3 Devolver valores a la aplicación
8.4 Ejemplo 7
9 Control básico Button
9.1 Ficheros de recursos
9.2 Iniciar controles button
9.3 Tratamiento de acciones de los controles button
9.4 Ejemplo 8
10 Control básico Static
10.1 Ficheros de recursos
10.2 Iniciar controles static
10.3 Tratamiento de acciones de los controles static
10.4 Ejemplo 9
11 Control básico ComboBox
11.1 Ficheros de recursos
11.2 Iniciar controles ComboBox
11.3 Devolver valores a la aplicación
11.4 Ejemplo 10
12 Control básico Scrollbar
12.1 Ficheros de recursos
12.2 Iniciar controles Scrollbar
12.3 Iniciar controles scrollbar: estructura SCROLLINFO
12.4 Procesar los mensajes procedentes de controles Scrollbar
12.5 Procesar mensajes de scrollbar usando SCROLLINFO
12.6 Devolver valores a la aplicación
12.7 Ejemplo 11
12.8 Ejemplo 12
13 Control básico Groupbox
13.1 Ficheros de recursos
13.2 Iniciar controles GroupBox
13.3 Devolver valores a la aplicación
13.4 Ejemplo 13
14 Control básico Checkbox
14.1 Ficheros de recursos
14.2 Iniciar controles CheckBox
14.3 Procesar mensajes de los CheckBox
14.4 Devolver valores a la aplicación
14.5 Ejemplo 14
15 Control básico RadioButton
15.1 Ficheros de recursos
15.2 Iniciar controles RadioButton
15.3 Procesar mensajes de los RadioButtons
15.4 Devolver valores a la aplicación
15.5 Ejemplo 15
16 El GDI
16.1 Objetos del GDI
17 Objetos básicos del GDI: El Contexto de dispositivo, DC
17.1 Actualizar el área de cliente de una ventana, el mensaje WM_PAINT
17.2 Colores
18 Objetos básicos del GDI: La pluma (Pen)
18.1 Plumas de Stock
18.2 Plumas cosméticas y geométricas
18.3 Crear una pluma
18.4 Seleccionar una pluma
18.5 Destruir una pluma
18.6 Ejemplo 16
19 Funciones para el trazado de líneas
19.1 Trazado de arcos, función Arc
19.2 Curvas Bézier
19.3 Funciones Poly<
19.4 Función LineDDA y funciones callback LineDDAProc
19.5 Ejemplo 17
20 Objetos básicos del GDI: El pincel (Brush)
20.1 Pinceles lógicos
20.1.1 Pinceles sólidos
20.1.2 Pinceles de Stock
20.1.3 Pinceles de tramas (Hatch)
20.1.4 Pinceles de patrones
20.2 Crear un pincel
20.3 Seleccionar un pincel
20.4 Destruir un pincel
30.5 Ejemplo 18
21 Funciones para el trazado de figuras rellenas
21.1 Pintando trozos de elipses, funciones Chord y Pie
21.2 Modos de relleno de polígonos
21.3 Ejemplo 19
22 Objetos básicos del GDI: La paleta (Palette)
22.1 Capacidades de Color de los dispositivos
22.2 Definiciones de valores de color
22.3 Aproximaciones de colores y mezclas de pixels (dithering)
22.4 Mezclas de colores (ROP)
22.5 Paletas de colores
22.6 La paleta por defecto
22.7 Paleta lógica
22.8 Paleta de sistema
22.9 Ejemplo 20
23 Objetos básicos del GDI: El Mapa de Bits (Bitmap)
23.1 Tipos de mapas de bits
23.2 Crear un mapa de bits
23.3 Fichero de recursos
23.4 Fichero BMP
23.5 Mostrar un mapa de bits
23.6 Funciones de visualización de mapas de bits
23.6.1 BitBlt
23.6.2 StretchBlt
23.6.3 PlgBlt (Sólo en Windows NT)
23.6.4 (Sólo en Windows NT)
23.7 Códigos ROP ternarios
23.8 Códigos ROP cuádruples
23.9 Pinceles creados a partir de mapas de bits
23.9.1 PatBlt
23.9.2 ExtFloodFill
23.10 Estructuras de datos
23.10.1 BITMAP
23.11 Modos de estiramiento (stretch modes)
23.12 Mapas de bits de stock
23.13 Ejemplo 21
24 Objetos básicos del GDI: La Fuente (Font)
24.1 Mostrar un texto simple
24.2 Cambiar el color del texto
24.3 Ejemplo 22
24.4 Crear fuentes personalizadas
24.4.1 Altura y anchura media de carácter
24.4.2 El ángulo de escape
24.4.3 El ángulo de orientación
24.4.4 Peso
24.4.5 Cursiva
24.4.6 Subrayado
24.4.7 Tachado
24.4.8 Conjunto de caracteres
24.4.9 Precisión de salida
24.4.10 Precisión de recorte
24.4.11 Calidad
24.4.12 Paso y familia
24.4.13 Nombre
24.5 Fuentes de stock
24.6 Alineamientos de texto
24.7 Separación de caracteres
24.8 Medidas de cadenas
24.9 Justificar texto
24.10 Ejemplo 23
25 Objetos básicos del GDI: Rectángulos y Regiones
25.1 Rectángulos
25.2 Funciones para trabajar con rectángulos
25.2.1 Asignar rectángulos
25.2.2 Comparaciones de rectángulos
25.2.3 Modificar rectángulos
25.2.4 Operaciones con rectángulos
25.3 Ejemplo 24
25.4 Regiones
25.5 Funciones para regiones
25.5.1 Crear regiones
25.5.2 Combinar regiones
25.5.3 Comparar regiones
25.5.4 Rellenar regiones
25.5.5 Mover una región
25.5.6 Comprobar posiciones
25.5.7 Destruir regiones
25.6 Ejemplo 25
26 Objetos básicos del GDI: El camino (Path)
26.1 Crear un camino
26.2 Operaciones con caminos
26.3 Ejemplo 26
27 Objetos básicos del GDI: El recorte (Clipping)
27.1 Regiones de recorte y el mensaje WM_PAINT
27.2 Funciones relacionadas con el recorte
27.3 Seleccionar regiones de recorte
27.4 Caminos de recorte
27.5 Ejemplo 27
28 Objetos básicos del GDI: Espacios de coordenadas y transformac
28.1 Definiciones
28.2 Transformaciones
28.2.1 Traslaciones
28.2.2 Cambio de escala
28.2.3 Rotaciones
28.2.4 Cambio de ejes
28.2.5 Reflexiones
28.3 Aplicar transformaciones
28.4 Combinar transformaciones
28.5 Cambios de escala y plumas
28.6 Ejemplo 28
28.7 Ventanas y viewports
28.7.1 Extensiones
28.7.2 Orígenes
28.8 Mapeos
28.9 Modos de mapeo predefinidos
28.10 Modo por defecto
28.11 Transformaciones definidas por el usuario
28.12 Modos gráficos y sentido de los arcos
28.13 Otras funciones
28.14 Ejemplo 29
29 Objetos básicos del GDI: Plumas geométricas
29.1 Atributos de las plumas geométricas
29.1.1 Anchura
29.1.2 Estilo de línea
29.1.3 Color
29.1.4 Patrón
29.1.5 Rayado
29.1.6 Estilo de final (tapón)
29.1.7 Estilo de unión
29.2 Crear una pluma geométrica
29.3 Seleccionar una pluma geométrica
29.4 Destruir una pluma geométrica
30 Objetos básicos de usuario: El Caret
30.1 Recibir y perder el foco
30.2 Crear y destruir carets
30.3 Mostrar y ocultar carets
30.4 Procesar mensajes WM_PAINT
30.5 Cambiar posición de un caret
30.6 Cambiar velocidad de parpadeo de un caret
30.7 Ejemplo 31
31 Objetos básicos del usuario: El icono
31.1 Punto activo
31.2 Tamaños
31.3 Asociar iconos a una aplicación
31.4 Tipos
31.5 Iconos en ficheros de recursos
31.6 Iconos en controles estáticos
31.7 Mostrar iconos
31.8 Destrucción de iconos
31.9 Ejemplo 32
32 Objetos básicos del usuario: El cursor
32.1 Cursor de clase
32.2 Cursores de recursos
32.3 Cursores estándar
32.4 Similitud entre iconos y cursores
32.5 El punto activo (Hot Spot)
32.6 Crear cursores
32.7 Posición del cursor
32.8 Apariencia
32.9 Modificar el cursor de clase
32.10 El mensaje WM_SETCURSOR
32.11 Ocultar y mostrar
32.12 Confinar el cursor
32.13 Destrucción de cursores
32.14 Ejemplo 33
33 El ratón
33.1 Capturar el ratón
33.2 Configuración
33.3 Mensajes
33.3.1 Mensajes del área de cliente
33.3.2 Mensajes del área de no cliente
33.3.3 Mensaje WM_NCHITTEST
33.3.4 Mensaje WM_MOUSEACTIVATE
33.4 Otros mensajes de ratón
33.4.1 Mensaje WM_MOUSEWHEEL (Windows NT)
33.5 Trazar eventos del ratón (Windows NT)
33.5.1 Mensaje WM_MOUSELEAVE (Windows NT)
33.5.2 Mensaje WM_MOUSEHOVER (Windows NT)
33.6 Ejemplo 34
33.7 Arrastrar objetos
33.8 Ejemplo 35
34 El teclado
34.1 El Foco del teclado
34.2 Ventanas inhibidas
34.3 Ejemplo 36
34.4 Mensajes de pulsación de teclas
34.5 Nombres de teclas
34.6 El bucle de mensajes
34.7 Ejemplo 37
34.8 Mensajes de carácter
34.8.1 Teclas muertas
34.9 Estado de teclas
34.10 Ejemplo 38
34.11 Hot keys
34.12 Ejemplo 39
34.13 Códigos de teclas virtuales
35 Cadenas
35.1 Recursos de cadenas
35.1.1 Fichero de recursos
35.1.2 Cargar cadenas desde recursos
35.2 Funciones para cadenas
35.3 Ejemplo 40
36 Aceleradores
36.1 Recursos de aceleradores
36.1.1 Fichero de recursos
36.1.2 Cargar aceleradores desde recursos
36.2 Bucle de mensajes para usar aceleradores
36.3 Crear tablas de aceleradores sin usar recursos
36.4 Combinar aceleradores y menús
36.5 Aceleradores globales
36.6 Diferencia entre acelerador y menú
36.7 Ejemplo 41
37 Menús 2
37.1 Marcas en menús
37.1.1 Menús como checkboxes
37.1.2 Menús como radiobuttons
37.2 Ejemplo 42
37.3 Inhibir y oscurecer ítems
37.4 Ejemplo 43
37.5 Más sobre ficheros de recursos
37.5.1 Sentencia MENUITEM y POPUP
37.5.2 Detalles sobre cadenas de ítems
37.5.3 Sentencia MENUEX
37.5.4 Items marcados y no marcados
37.5.5 Items activos, inactivos u oscurecidos
37.5.6 Separadores y líneas de ruptura
37.5.7 Cargar recursos
37.6 Ítems por defecto
37.7 Ejemplo 44
37.8 Menús flotantes o contextuales
37.9 Ejemplo 45
37.10 Acceso por teclado
37.10.1 Mnemónicos
37.10.2 Acceso de teclado estándar
37.10.3 Aceleradores
37.11 Modificar menús
37.12 El menú de sistema
37.12.1 Modificar el menú de sistema
37.13 Ejemplo 46
37.14 Destrucción de menús
37.15 Mensajes de menú
37.16 Mapas de bits en ítems de menú
37.16.1 Modificar mapas de bits de check
37.16.2 Items de mapas de bits
37.17 Ejemplo 47
38 La memoria
38.1 Memoria virtual
38.2 Un poco de historia
38.2.1 Memoria local y global
38.2.2 Otros atributos de la memoria en Windows
38.2.3 Objetos móviles y fijos
38.2.4 Objetos descartables y no descartables
38.2.5 Funciones clásicas para manejo de memoria
38.2.6 Desventajas de este modelo de memoria
38.3 Funciones para manejo de memoria virtual
38.3.1 Reservar direcciones de memoria virtual
38.3.2 Liberar direcciones de memoria virtual
38.3.3 Bloquear páginas de memoria asignada
38.3.4 Establecer atributos de protección de acceso
38.3.5 Obtener información sobre páginas de memoria
38.4 Ejemplo 48
39 Control edit avanzado
39.1 Insertar controles edit durante la ejecución
39.2 Cambiar la fuente de un control edit
39.3 Cambiar los colores de un control edit
39.4 Ejemplo 49
39.5 Contoles edit de sólo lectura
39.6 Ejemplo 50
39.7 Leer contraseñas
39.8 Ejemplo 51
39.9 Mayúsculas y minúsculas
39.10 Ejemplo 52
39.11 Mensajes de notificación
39.11.1 Modificación
39.11.2 Actualización
39.11.3 Falta espacio
39.11.4 Desplazamiento horizontal y vertical
39.11.5 Pérdida y recuperación de foco
39.11.6 Texto máximo
39.12 El buffer de texto
39.13 Controles multilínea
39.13.1 Iniciar controles multilínea
39.13.2 Mensajes para controles multilínea
39.14 Ejemplo 53
39.15 Operaciones sobre selecciones de texto
39.16 Deshacer cambios (undo)
39.17 Modificación del texto
39.18 Márgenes y tabuladores
39.19 Desplazar texto
39.20 Ejemplo 54
39.21 Caracteres y posiciones
39.22 Ejemplo 55
40 Control list box avanzado
40.1 Insertar controles list box durante la ejecución
40.2 Cambiar la fuente de un control list box
40.3 Cambiar los colores de un control list box
40.4 Ejemplo 56
40.5 Mensajes de notificación
40.5.1 Doble clic
40.5.2 Falta espacio
40.5.3 Pérdida y recuperación de foco
40.5.4 Selección y deselección
40.6 Mensajes más comunes
40.7 Ejemplo 57
40.8 El dato del ítem
40.9 Ejemplo 58
40.10 Funciones para ficheros y directorios
40.11 Ejemplo 59
40.12 Listbox de selección sencilla y múltiple
40.12.1 Selecciones
40.12.2 Mensajes especiales para list box de selección extendida
40.13 Ejemplo 60
40.14 List box sin selección
40.15 List box multicolumna
40.16 Ejemplo 61
40.17 Paradas de tabulación
40.18 Ejemplo 62
40.19 Actualizaciones de gran número de ítems
40.19.1 Optimizar la memoria
40.19.2 Optimizar el tiempo
40.20 Ejemplo 63
40.21 Responder al teclado
40.22 Ejemplo 64
40.23 Aspectos gráficos del list box
40.23.1 Ajustar la anchura de un list box
40.23.2 Ajustar la altura de los ítems
40.23.3 Items y coordenadas
40.24 Ejemplo 65
40.25 Localizaciones
40.26 Ejemplo 66
40.27 Otros estilos
40.28 List box a medida (owner-draw)
40.29 Estilos owner-draw para list box
40.29.1 List box owner-draw de altura fija
40.29.2 List box owner-draw de altura variable
40.29.3 Dibujar cada ítem
40.29.4 El mensaje WM_DELETEITEM
40.30 Ejemplo 67
40.31 Otros mensajes para list box con estilos owner-draw
40.32 Definición del orden
41 Control button avanzado
41.1 Insertar botones durante la ejecución
41.2 Cambiar fuente
41.3 Cambiar colores
41.4 Modificar el bucle de mensajes
41.5 Botones con iconos o mapas de bits
41.6 Otros estilos para botones
41.6.1 Alineación de contenidos
41.6.2 Check box y Radio buttons
41.7 Ejemplo 68
41.8 Mensajes de notificación
41.8.1 Selección
41.8.2 Doble clic
41.8.3 Pérdida y recuperación de foco
41.8.4 Inhibir mensajes de notificación
41.9 Estilos de cada tipo de botón
41.9.1 Botones pulsables
41.9.2 Check boxes
41.9.3 Radio buttons
41.9.4 Cajas de grupo
41.9.5 Botones owner-draw
41.10 Estados de un botón
41.10.1 Selección de un botón
41.10.2 Cambios de estado
41.11 Funciones para controles botón
41.11.1 Funciones propias de controles botón
41.12 Modificar el estilo de un botón
41.13 Botones owner-draw
41.14 Ejemplo 69
42 Control estático avanzado
42.1 Insertar controles estáticos durante la ejecución
42.2 Cambiar fuente
42.3 Cambiar colores
42.4 Estilos estáticos gráficos
42.4.1 Marcos
42.4.2 Rectángulos
42.4.3 Ranurados
42.4.4 Ejemplos
42.4.5 Más sobre los ranurados
42.5 Estilos estáticos de texto
42.6 Imágenes
42.6.1 Mensajes para asignar imágenes
42.6.2 Modificadores de estilo
42.7 Modificador de hundido
42.8 Mensajes de notificación
42.9 Controles estáticos owner-draw
42.10 Ejemplo 70
43 Control combo box avanzado
43.1 Tipos de combo boxes
43.2 Insertar controles combo box durante la ejecución
43.3 Cambiar la fuente de un control combo box
43.4 Cambiar colores en combo box
43.5 Mensajes de notificación
43.5.1 Cambio en selección de lista
43.5.2 Validar selección
43.5.3 Despliegue de lista
43.5.4 Doble clic
43.5.5 Falta espacio
43.5.6 Modificación
43.5.7 Actualización
43.5.8 Pérdida y recuperación de foco
43.6 Otros estilos para combo box
43.6.1 Estilos para la parte de edición
43.6.2 Estilos para la lista
43.7 Ejemplo 71
43.8 Mensajes correspondientes a la lista
43.8.1 Añadir ítems
43.8.2 Recuperar información
43.8.3 Cambiar la selección
43.8.4 Buscar ítems
43.8.5 Borrar ítems
43.8.6 Otros mensajes
43.9 Ejemplo 72
43.10 El dato del ítem
43.11 Interfaces de usuario
43.12 Funciones para ficheros y directorios
43.12.1 Juegos de caracteres
43.12.2 Procesar CBN_CLOSEUP
43.13 Selección actual
43.14 Ejemplo 73
43.15 El control de edición
43.16 Actualizaciones de gran número de ítems
43.16.1 Optimizar la memoria
43.16.2 Optimizar el tiempo
43.17 Aspectos gráficos del combo box
43.17.1 Ajustar la anchura de un combo box
43.17.2 Ajustar la altura de los ítems
43.18 Localizaciones
43.19 Combo boxes owner draw
43.19.1 Combo box owner-draw de altura fija
43.19.2 Combo box owner-draw de altura variable
43.19.3 Dibujar cada ítem
43.20 Otros mensajes para combo box con estilos owner-draw
43.20.1 El mensaje WM_DELETEITEM
43.21 Dimensiones de la lista desplegable
43.22 Definición del orden
43.23 Ejemplo 74
44 Control scrollbar avanzado
44.1 Controles de barra de desplazamiento y barras estándar
44.2 Insertar controles scrollbar durante la ejecución
44.3 Cambiar colores
44.4 Estilos de scrollbar
44.4.1 Estilos de orientación
44.4.2 Alineamiento con los bordes
44.4.3 Opciones para cajas de tamaño
44.4.4 Alineamiento de cajas de tamaño
44.5 Mostrar u ocultar barras de desplazamiento
44.6 Deshabilitar o habilitar un control de barra de desplazamiento
44.7 Deshabilitar o habilitar flechas
44.7.1 Usando funciones
44.7.2 Usando mensajes
44.8 Mensajes de barras de desplazamiento
44.9 Respuesta al teclado
44.10 Ejemplo 75
44.11 Desplazar contenido de ventanas
44.12 Colores y medidas
44.12.1 Valores de medidas del sistema
44.13 Otros mensajes
44.14 Ejemplo 76
45 Capítulo 45 La impresora
45.1 Proceso de impresión
45.1.1 El spooler de impresión (print spooler)
45.1.2 El procesador de impresión (print processor)
45.1.3 La máquina de gráficos (graphics engine)
45.1.4 El monitor
45.2 Obtener una lista de impresoras
45.2.1 Ejemplo 77
45.3 Contexto de dispositivo
45.3.1 Usando CreateDC
45.3.2 Ejemplo 78
45.3.3 Usando PrintDlg
45.4 Ejemplo 79
46 Capítulo 46 Controles comunes
47 Capítulo 47 Control animación
47.1 Ficheros de recursos
47.2 Insertar durante la ejecución
47.3 Manipular la animación
47.3.1 Abrir animación
47.3.2 Reproducir
47.3.3 Detener
47.3.4 Mostrar un fotograma
47.3.5 Verificar reproducción
47.3.6 Cerrar animación
47.4 Mensajes de notificación
47.5 Ejemplo 80
48 Capítulo 48 Listas de imágenes
48.1 Crear una lista de imágenes
48.2 Añadir y eliminar imágenes
48.3 Crear listas con imágenes
48.4 Obtener iconos
48.5 Mostrar imágenes
48.6 El color de fondo
48.7 Imágenes superpuestas
48.8 Ejemplo 81
48.9 Arrastre de imágenes
48.9.1 Inicio del arrastre
48.9.2 Arrastre
48.9.3 Final del arrastre
48.10 Información de imagen
49 Capítulo 49 Ventana de estado
49.1 Cómo crear ventanas de estado
49.2 Estilos
49.3 Ayuda para menús
49.4 Ejemplo 83
49.5 Tamaño y altura
49.6 Ventanas de estado con varias partes
49.7 Manejar texto
49.8 Ejemplo 84
49.9 Ventanas de estado owner-draw
49.10 Ejemplo 85
49.11 Ventanas de estado simples
50 Capítulo 50 Barra de progreso
50.1 Estilos visuales
50.1.1 Fichero de manifiesto
50.1.2 Manifiesto en fichero de recursos
50.2 Estilos
50.3 Cómo crear barras de progreso
50.4 Rangos
50.5 Posicion
50.6 Colores
50.7 Ejemplo 86
51 Capítulo 51 Control Tooltip
51.1 Creación de tooltip
51.2 Estilos
51.3 Activar y desactivar tooltips
51.4 Cambios de color
51.5 Asignar título e icono
51.6 Limitar anchura
51.7 Asignar a herramienta
51.7.1 Asignar tooltip a un control
51.7.2 Asignar tooltip a un rectángulo
51.7.3 Eliminar un control de un tooltip
51.7.4 Usar cadenas de recursos
51.8 Ejemplo 87
51.9 Notificaciones
51.9.1 Mensaje de petición de texto
51.10 Ejemplo 88
51.11 Notificaciones de mostrar y ocultar
51.12 Personalización
51.13 Ejemplo 89
51.14 Otros mensajes
A Glosario