Visual C++ 6
Cree aplicaciones dinámicas con Visual C++
Producto descontinuado
Este producto ha sido descontinuado por su fabricante y puede que ya no esté disponible. Contacte con ABOX antes de hacer su pedido.Hágase rápidamente con todas las características que necesite para desarrollar proyectos para Windows o basados en la red a nivel industrial. Puede hacerlo todo, desde las bases de un menú y entradas a través del ratón, a la programación de scripts ODBC, DAO y ADO. Gracias a los consejos de expertos programadores en Visual C++, Rick Leinecker y Tom Archer, encontrará todo lo que necesite para estar al día con los remas relacionados con el desarrollo y programación de elementos para Windows en Visual C++. La mayoría serán referencias detalladas y de fácil comprensión. Conozca los pros y los contras de la programación para Windows (desde los menús hasta el control de las interrupciones de los datos), aumente las capacidades de las bases de datos ODBC, las clases MFC, DAO, ADO y OLE DB, amplíe las aplicaciones con la carga dinámica de DLL y librerías de terceros, utilice MFC para crear controles ActiveX o ATL para crear pequeños controles para las aplicaciones, escriba aplicaciones dinámicas para Internet gracias a los trucos, conexiones aplicaciones CHtmlView y DHTML
Parte I. Principios básicos de Visual C++
1. Inicio
Lo nuevo en Visual C++ 6.0
El programa HelloWorld1
El programa HelloWorld2
El control ATL HelloWorld3
Resumen
2. Uso de Visual Studio IDE
Uso de IDE de Visual Studio
Creación de su primer proyecto
Personalización del IDE
Teclas de método abreviado
Añadir, editar y borrar métodos abreviados
Uso de las barras de herramientas
Mostrar y esconder barras de herramientas
Personalización de las barras de herramientas
Resumen
3. Depuración: Cuando sus aplicaciones no funcionan
Lo que debe hacer todo depurador
El depurador integrado de Visual Studio
Preparación de la aplicación para su depuración
El depurador al ejecutar una aplicación
Ventanas de depuración
Uso de breakpoints y ejecución paso a paso
Uso de la información DataTips y de la ventana QuickWatch
Uso de los cuadros de diálogo Threads y Exceptions
Técnicas simples de depuración
Usos de cuadros de mensaje para acelerar la depuración
Resultado de la depuración
Uso de afirmaciones
Volcado de objetos
Detección de agujeros de memoria y la clase CMemoryState
Uso del rastreo MFC
Depuración Just-In-Time
Editar y continuar con la depuración
Depuración de servicios Windows NT
Resumen
4. Mejora del rendimiento de la aplicación
Optimización del código
Introducción al perfilado
Principios del perfilado de aplicaciones
Funcionamiento de Profiler
Tipos de perfilado
Configuración avanzada de Profiler
Activar perfilado en Visual C++ 6.0
Control del perfilado desde el entorno de desarrollo
Selección de una función para el perfilado
El programa PREP
Perfilado con function timing
Perfilado con function coverage
Opciones de perfilado de línea
Perfilado con line coverage
Combinación de los resultados de Profiler
Exportar datos desde Profiler
Análisis de la información de Profiler
Registros de información global
Registros de información local
Análisis de las estadísticas de Profiler
Proceso del resultado de Profiler con Microsoft Excel
Perfilado de librerías de enlace dinámico
Perfilado de componentes y controles ActiveX
Perfilado de código inline
Perfilado de aplicaciones multithread
Perfilado del rendimiento de la aplicación
Uso de la herramienta CAP para eliminar llamadas duplicadas
Perfilado de servicios Windows NT
Resumen
Parte II. Fundamentos básicos de la programación Windows
5. Panorama de la programación MFC
¿Qué es MFC?
Filosofía de diseño de MFC
Ventajas de usar MFC
Grandes cualidades
Arquitectura extensible
Diseño de jerarquía de MFC
Mantenimiento de archivos
Ventanas
Gráficos
Soporte para bases de datos
¿No usa MFC?
Resumen
6. Los menús
Creación y edición de menús
Creación de menús
Mensajes de menú en MFC
Teclas de método abreviado
Definición de métodos abreviados
Crear un recurso de tabla de métodos abreviados
Crear indicaciones de teclas de método abreviado en el menú
Selección de las teclas adecuadas
Menús contextuales
Resumen
7. El ratón y el teclado
Fundamentos de la introducción de datos y estado del sistema
Ingreso de datos con el ratón
Crear manipuladores de mensaje de ratón
Conversión entre coordenadas de pantalla y ventana
Creación de un programa MFC que maneje eventos de ratón
Eventos de ratón no-cliente
Cambio del cursor del ratón
Creación de un programa de demostración que cambia los cursores del ratón
Captura del ratón
Limitar el movimiento del ratón
Entradas de teclado
El teclado físico
El teclado lógico Windows
Mensajes de caracteres imprimibles
Repetición del foco de teclado
Creación y mantenimiento de cursores de teclado
Rectángulos de foco
Estado de selección y foco de teclado
Resumen
8. Controles
Un poco de historia
Creación de controles
Uso de la clase CButton
Creación de botones de comando
Manejo de mensajes de botón
Creación de botones de opción
Configuración e interrogación de botones de opción
Creación de casillas de verificación
Configuración e interrogación de casillas de verificación
Uso de la clase CListBox
Crear cuadros de lista
Añadir y borrar elementos
Seleccionar y buscar elementos
Manejo de mensajes de botón
Uso de la clase CEdit
Creación de controles de edición
Limitar un control CEdit
Añadir y borrar texto
Cortar, copiar, pegar y deshacer
Manipular mensajes CEdit
Uso de la clase CStatic
Creación de controles CStatic
Manejo de mensajes CStatic
Uso de la clase CScrollBar
Creación de controles
Control de CScrollBar
Manejo de mensajes CScrollBar
Uso de la clase CComboBox
Crear un control CComboBox
Control de CComboBox
Manejo de mensajes CComboBox
El programa Mini Editor
Resumen
9. Diálogos modales y no modales
Uso de Dialog Editor
Plantillas de diálogo
Creación de una nueva plantilla de diálogo
Edición de una plantilla de diálogo
Ajustar las propiedades de una plantilla de diálogo
Adición de controles a una plantilla de diálogo
Cambio de tamaño y de disposición de múltiples controles
Establecer el orden de activación
Comprobación del diálogo
La clase CDialog
Diálogos modales o diálogos no modales
Creación de un diálogo modal con CDialog
Creación de un diálogo no modal con CDialog
Creación de clases derivadas de CDialog con ClassWizard
Intercambio de información de diálogo y validación
Creación de variables DDX
DoDataExchange y UpdateData
El programa de demostración AddressBook
Edición de diálogo de demostración
La clase CContact
Omitir OnInitDialog
Manejo del mensaje WM_DESTROY
Presentación de los datos
Manejo de notificaciones de botón
Construcción y comprobación del programa de demostración
Clases de controles derivadas en diálogos
Creación de clases derivadas
Uso de ClassWizard para crear la clase
Implementación de las funciones necesarias
Uso de ClassWizard para crear la variable miembro
Programa AddressBook: CAutoCompleteComboBox
Código fuente de CAutoCompleteComboBox
Adición de CAutoCompleteComboBox al programa de demostración
Serialización
Serializar cada clase
Implementar la función virtual Serialize()
Lectura de datos desde disco
Grabación de datos al disco
Añadir serialización al programa AddressBook
Resumen
10. Páginas de propiedades y fichas de propiedades
CPropertySheet y CPropertyPage
Creación de recursos de páginas de propiedades
Creación de la clase CPropertyPage
Crear y mostrar una página CPropertySheet modal
Crear y mostrar una página CPropertySheet no modal
Página de propiedades modal de demostración
Consejos y técnicas para páginas de propiedades y fichas de propiedades
Eliminación de los botones normalizados
Mover los botones normalizados
Cambio del texto del botón
Desactivación de fichas
Creación de una variable miembro para almacenar el índice de la ficha actual
Creación de una variable miembro para almacenar las fichas desactivadas actualmente
Añadir funciones miembro a fichas desactivadas específicas
Añadir funciones miembro para establecer el texto en las fichas desactivadas
Manejo de mensajes de notificación para fichas desactivadas
Añadir una función que verifique si una ficha está desactivada
Comprobación de la capacidad de desactivar fichas
Reactivación de fichas de propiedades
Examen de la función SetEnabledText
Comprobación de la función EnableTab
Establecer dinámicamente los textos de las fichas CPropertyPage
Uso de la función SetItem para establecer el texto de una ficha
Comprobación de la función SetItem para establecer el texto de la ficha
Cambio de fuente de la ficha
Uso de mnemónicos con fichas CPropertyPage
Resumen
11. Entrada y salida de información
La clase CString
Creación de cadenas
Acceso a cadenas de datos
Comparación
Extracción
Búsquedas
El programa de demostración StringDemo
La clase CFile
El programa FileDemo
La clase CCompressedFile
El programa CompressDemo
Compresión de datos
Huffman
LZSS
LZW
El programa CompressDemo
Abrir un archivo
Grabar archivos
La clase CSerial para comunicaciones serie
Comunicaciones serie
La clase CRegistry
Valores del Registro
Claves del Registro predefinidas
Claves del Registro más utilizadas
Subclaves en HKEY_CLASSES_ROOT
Subclaves en HKEY_USERS
Subclaves en HKEY_CURRENT_USERS
Uso del Portapapeles
Resumen
12. Sonido
Ejecución de sonidos grabados
La clase CWave
Ejecutar un archivo de sonido usando API de Windows
La función PlaySound()
La interfaz de control multimedia (MCI)
Funciones de la clase CWave
El programa de demostración WaveDemo
Reproducción de archivos MIDI
Concepto de MIDI
La clase CMidi
Funciones de la clase CMidi
El programa MIDIDemo
CD Audio
La librería de clase CCDAudio
La interfaz de control multimedia
Funciones de la clase CCDAudio
El programa CDPlayer
Resumen
Parte III. Arquitectura
13. Documentos, vistas y SDI
Diseño de documentos y vistas
La clase CDocument
Declaración de una clase documento en la aplicación
Funciones miembro de CDocument
Los documentos y el proceso de mensajes
Sobrescritura de funciones virtuales de documento
El trabajo con datos de documento complejos
Beneficios de CCmdTarget y CDocItem
La importancia de la función InitInstance para los documentos
Forma en que las aplicaciones gestionan los documentos y las vistas
Enfoque de la clase CSingleDocTemplate
Breve trabajo con ventanas de marco
Recursos de la plantilla del documento
Cómo afecta el recurso de cadena a la plantilla del documento
División del recurso de cadena
Un vistazo a los recursos de vista del stock
El ciclo de vida de la plantilla del documento
El trabajo avanzado con plantillas
El trabajo con varias plantillas
Destrucción de documentos añadidos con la función miembro AddDocTemplate()
Empleo de la clase CView
Declaración de una clase View
Análisis de las funciones miembro CView
El trabajo con vistas y mensajes
Variantes derivadas de MFC de la clase CView
Evaluación de la vista CForm frente a las aplicaciones basadas en cuadros de diálogo
Vuelta a las ventanas del marco
El papel de AfxGetMainWnd()
La aplicación SDI HexView
Resumen
14. Diseño de una aplicación MDI
Revisión de la clase CDocument
Gestión de combinaciones más complejas de documentos, vistas y ventanas del marco
El trabajo con múltiples tipos de documento
Empleo de múltiples vistas con documentos
La clase CMDIFrameWnd
La clase CMDIChildWnd
La clase CMultiDocTemplate
Revisión del empleo de clases CDocument
Otras consideraciones sobre las aplicaciones MDI
El programa PaintObj
Las ventanas de división
Diferencia entre las ventanas divisibles
Lo más específico de la clase CSplitterWnd
Más sobre las divisiones dinámicas
Empleo de vistas diferentes en paneles dinámicos
Empleo del objeto CRuntimeClass
Empleo de divisiones con vistas asociadas a más de un documento
Empleo de divisiones estáticas
Creación de una división estática
Las barras de desplazamiento compartidas
El tamaño real y el tamaño ideal
El rendimiento con divisiones
El programa Dynsplit
Subclasificación de las ventanas secundarias
Empleo de las ventanas de subclase de MFC
Alternativas para la arquitectura documento/vista
Resumen
15. Impresión y vista preliminar
Soporte de impresora de la API de Windows
Información de la impresora
La importancia de las características del texto
El programa Portland
La impresión con MFC
El papel del programador y el del marco de trabajo en la impresión
La secuencia de impresión de MFC
Más sobre la impresión predeterminada de MFC
El protocolo de impresión
Sobrescritura de las funciones de la clase vista y paginación
La clase CPrintInfo
Páginas de impresora frente a páginas del documento
Instalación de la paginación
Las funciones de ayuda
Paginación en tiempo de impresión
Revisión de la impresión de encabezados y pies de página
Asignación de recursos GDI para imprimir
Ampliación de la imagen impresa
La arquitectura Vista preliminar
El proceso de la vista preliminar
Modificación de la vista preliminar
Mejora de la vista preliminar de la aplicación
La clase CPrintDialog
El programa HexViewMDI
Resumen
16. Barras de estado y de herramientas
Creación y empleo de barras de estado
Creación de una barra de estado
Personalización de las barras de estado
Creación de barras de estado personalizadas
Control de la barra de estado
Creación y control de barras de herramientas
Barras de control MFC
Creación e inicio de una barra de herramientas
Anclar y flotar
Barras de herramientas visibles e invisibles
Cómo agregar información de herramientas y texto flotante
Cómo agregar controles sin botón
Actualización de los controles sin botón
Empleo del control ReBar
Resumen
17. Controles Tree View y List View
CTreeCtrl
Fundamentos del control Tree View
CTreeCtrol
Crear CTreeCtrl
Insertar elementos en un CTreeCtrl
Editar etiquetas
Menús de contexto
Demostración de CTreeCtrl
Crear el diálogo de demostración
Crear una clase derivada del CTreeCtrl
Añadir un segundo diálogo para recuperar el texto del elemento
Añadir el menú contexto
Evitar la duplicación de hermanos
Añadir la capacidad de editar etiquetas del elemento
CListCtrl
Fundamentos del List
CListCtrl
Crear CListCtrl
Configurar una Image List del control List View
Configurar y cambiar un estilo de View
Añadir columnas a un CListCtrl
Ajustar el tamaño de las columnas
Insertar elementos en un CListCtrl
Resumen
Parte IV. Programación de bases de datos
18. ODBC
Definiciones de ODBC y terminología de bases de datos
ODBC. La necesidad de un estándar
La ODBC estándar
Niveles de conformidad de las API de la ODBC
Niveles de conformidad de ODBC SQL
Aplicación ODBC
Configurar ODBC
Conectar un origen de datos
Consulta de los datos y del origen de datos
Preparar y ejecutar solicitudes SQL
Recuperar datos
Desconectar desde un origen de datos
Utilizar ODBC para traer datos
Añadir soporte ODBC al proyecto Visual C + +
Modificar el diálogo OBDCDemo
Añadir la inicialización y el código de base de datos
Usar ODBC para consultar dinámicamente a un origen de datos
Mirar la declaración de clase CODBCDynamic
Cómo trabaja la clase CODBCDynamic
Conectar el DSN
Ejecutar SQL y traer datos
Usar la clase CODBCDynamic
Resumen
19. Clases MFC de Bases de Datos
CDatabase
CRecordset
Crear un conjunto de registros
Abrir un conjunto de registros
Escribir y leer datos mediante RFX
Filtrado de registros
Clasificación de registros devueltos con un campo de registros
Moverse a través del conjunto de resultados
Salvar registros
Eliminar registros
Utilizar las clases MFC de bases de datos
Añadir soporte a las clases MFC de bases de datos
Crear una UI para la demostración
Añadir una clase de utilidad para encapsular los datos de usuario
Crear una clase CRecordset para la tabla UserMaster
Modificar el archivo de encabezamiento del diálogo
Modificar el archivo de instalación del diálogo
Conjuntos de registros y consultas parametrizados
Crear la UI para la demostración
Crear el conjunto de registros UserMaster
Modificar la clase Crecordset para aceptar parámetros
Añadir capacidad de búsqueda a la aplicación
Generar la aplicación
Crear consultas parametrizadas
La demostración de base de datos
Crear el campo de registro de los permisos
Resumen
20. Programación de base de datos DAO
Visión global del DAO
Historia del DAO
Jet 1.0
Jet 1.1
Jet 2.0
Jet 2.5
Jet 3.0
Jet 3.5
La jerarquía DAO
El objeto DBEngine
El objeto de la colección Workspace
El objeto Workspace
La colección Databases
El objeto Database
La colección Recordsets
El objeto Recordset
Las cantidad de (inter)faces DAO
Interfaces DAO de Automation
Las clases dbDAO de C++
Clases MFC DAO
Utilizar las clases MFC de DAO
CDaoDatabse
CDWorkspace
CDaoRecordset
Construir un objeto CDaoRecordset
Abrir un conjunto de registros
Escribir y leer datos utilizando DFX
Filtrar datos
Ordenar archivos devueltos con un conjunto de registros
Moverse a través de un conjunto de resultados
Salvar registros
Eliminar registros
Crear un proyecto de demostración
Editar el diálogo para la aplicación de demostración
Añadir una clase utilidad para encapsular los datos de usuario
Crear una clase CDaoRecordset para la tabla UserMaster
Modificar el archivo encabezamiento de diálogo
Modificar el archivo de instalación de diálogo
Probar la aplicación UserMaintenance
Resumen
Parte V. Aplicaciones extendidas
21. Trabajar con DLL
Visión general de DLL
Bibliotecas estáticas y dinámicas
Cargar DLL
DLL regulares de Visual C++
Entender las DLL regulares internas
Cargar dinámicamente las DLL
Ejemplos de cuándo cargar dinámicamente una DLL
Programar costuras de función
Escribir aplicaciones de múltiples idiomas
Cuando el archivo de encabezamiento o la biblioteca de importación no están disponibles
Recuperar recursos de un archivo binario
Ganchos de Windows
La función SetWindowsHookEx()
La función UnhookWindowsHookEx()
La función CallNextHook()
Escribir el gancho de teclado DLL
Generar una prueba para el gancho de teclado DLL
Probar el gancho de teclado de DLL
Objetos general C++ con DLL
Operador placement new
La demostración GlobalDllObjetcs
Aplicación de prueba GlobalDllObjectsClient
Probar las DLL GolbalDllObjetcs
DLL Extensión MFC
Entender el interior de las DLL extensión MFC
Exportar clases vía DLL extensión MFC
Más cosas acerca de AFX_EXT_CLASS
Buscar DLL extensión MFC anidadas
Exportar recursos
Escribir una demostración que encapsule documentos y vistas en una DLL
Crear una DLL extensión MFC para una imagen de documento y vista
Codificar la funcionalidad de vista ImageViewr´s
Encapsular el documento de imagen y vista en una clase
Generar una prueba para el documento de imagen y la vista deDLL
Resumen
22. Técnicas para añadir imágenes a los programas
Bibliotecas de terceros
La biblioteca ImageObject
Carga de imágenes
Presentación de las imágenes
El programa Display
Técnicas para escalar, recortar y cambiar la profundidad de color
Creación de una imagen desde un contexto de dispositivo
Creación de una imagen desde el portapapeles
Salvaguarda de imágenes
Tratamiento de imágenes
El programa ProcessImage
Resumen
Parte VI. Programación de modelado de objetos de un componente (COM)
23. Introducción a los controles y a su diseño
Los orígenes y usos de ActiveX
Comprender las distintas técnicas de ActiveX
Servidores de automatización
Controladores de automatización
Controles ActiveX
Objetos COM
Documentos ActiveX
Contenedores ActiveX
Qué puede hacer ActiveX
Determinar qué tipo de componente ActiveX se necesita
Uso de servidores de automatización y controladores
Uso de controles ActiveX
Objetos COM
Uso de Microsoft Foundation Class para crear componentes ActiveX
Uso de ActiveX Template Library para crear componentes ActiveX
Uso de BaseControl para crear componentes ActiveX
Creación de su propio marco de trabajo
Arquitectura de los componentes de ActiveX
Servidores de automatización ActiveX
Tipos de servidores de automatización
Ejecución en-proceso
Ejecución local
Ejecución remota
Controles ActiveX
Herramientas necesarias para construir componentes ActiveX
Compilador MIDL
Mktyplib
GUIGEN
RegEdit
Servidor de registro
Ole2View
Agregar herramientas al entorno de desarrollo de Visual C++
Uso de MFC para crear un control ActiveX
Creación del proyecto de control básico
Registro del control
Métodos de creación
Propiedades
Creación de propiedades normales definidas por el usuario
Creación de propiedades parametrizadas definidas por el usuario
Creación de propiedades de almacenamiento
Uso de las propiedades de ambiente
Creación de hojas de propiedades
Agregar sucesos
Persistencia
Dibujo del control
Dibujos estándar
Resumen
24. Librería Active Template
Un breve vistazo a ATL
Creación de un control ATL
Agregar un objeto COM al proyecto
Modificar el archivo CdoublePend
Implementación de las funciones de la interfaz
Uso del control desde C++
Tipos de datos
Conversiones a y desde BSTR
Comparar BSTR
Visualización del contenido de una cadena BSTR desde un programa de análisis
Incluir un control ActiveX en una página Web
Resumen
Parte VII. Internet y la programación HTML
25. Programación en Internet
La clase CInternetSession
La clase CFtpConnection
Recuperar un archivo de un servidor FTP
Enviar un archivo a un servidor FTP
Otras funciones FTP
La clase CInternetFile
Clase CFtpFileFind
El programa FTP
Conexiones y la clase CSocket
Creación de conexiones
Establecer una conexión
Escuchar a través de una conexión
Escritura y lectura de datos
Programa Sockets
Programa SendEmail
Programa AutoDialer
Resumen
26. Clase CHtmlView
Creación de un proyecto CHtmlView
Conversión de proyectos para utilizar CHtmlView
Navegar con CHtmlView
El programa SimpleBrowser
Programa MultiBrowser
Uso directo del control Web Browser
Escribir un explorador que registre su navegación
Escribir un explorador que bloquee sitios Web
Resumen
27. HTML dinámico
Fundamentos de HTML
Cascada de hojas de estilo
Hoja de estilos global
Sintaxis de la hoja de estilo
Contacte con ABOX para consultar precios
ACCIONES |
---|
Imprimir página |
Precios |