¿Cómo debo empezar a aprender VC (después de aprender c)?
1. ¿Qué es la CV? ¿Qué significa estudiar VC? (Reimpreso)
En primer lugar, VC es un software (entorno de desarrollo integrado IDE) (compilación, edición, depuración)
C y C. Pero algunas funciones de C no se utilizan, como flujos de E/S y herencia polimórfica
WindowsSDK (herramientas de desarrollo de software)
El alma de VC: MFC (Biblioteca de clases básica de Microsoft)
ATL (Biblioteca de plantillas ActiveX)
Otros SDK, como OpenGL, DirectX, ActiveMoive, DrawDib(WinG)
VC se basa en muchas tecnologías En resumen Es como los 72 trucos de Shaolin. Generalmente, es suficiente aprender solo algunos de ellos durante la aplicación. Nuestro objetivo actual es en realidad aprender un conjunto de Shaolin Changquan. Este conjunto de puños largos debe incluir:
1. Desarrollar un hábito de desarrollo de software riguroso y estar familiarizado con los principios básicos de la ingeniería de software.
2. Conceptos básicos del lenguaje C
3. El contenido más básico de C: los conceptos de clases, herencia, encapsulación y polimorfismo
4. para usar El asistente construye un marco de programa
5. Menú Diseño
6. Barra de herramientas de Diseño
7. Controles de cuadros de diálogo más utilizados: botones, texto estático, cuadros de edición, etc.
Sepa cómo crear nuevas clases, funciones miembro, variables miembro y funciones de procesamiento de mensajes.
9. Comprender los mensajes de Windows más utilizados: como WM_PAINT (redibujar ventana), presionar el mouse, rebotar, mover, cuadro de diálogo de inicialización, etc.
10. Comprenda la GDI (Interfaz de dispositivo gráfico) más simple: escriba texto, dibuje marcos, dibuje puntos, líneas, círculos y configure pinceles y pinceles.
11. Familiarizado con las clases MFC más utilizadas:
CWnd
CDocument
CView
CDC.
CDC
p>
CDialog
CWinApp
CGdiObject y subclases
CString, CPoint, CRect, CSize y otros tipos de datos simples
CFile
Los contenidos mencionados anteriormente son contenidos que todos usarán.
2. Introducción a MFC
Los contenidos principales anteriores están muy relacionados con el funcionamiento real y es imposible explicarlos claramente aquí; además, se analizarán en libros comunes; . Presentaré principalmente el MFC más importante.
MFC es una encapsulación de la API de Windows, lo que simplifica enormemente nuestro trabajo; aprender VC implica principalmente aprender MFC. Hay alrededor de 100 clases, pero solo 20 o 30 se usan comúnmente. Debes entender estas clases comunes como si memorizaras palabras de nivel 4; por supuesto, no las memorices de memoria. Debes aprenderlas leyendo ayuda, ejemplos y ejercicios prácticos. Además, no todas las funciones dentro de cada clase deben serlo. aprendidos, y deben aprenderse con el tiempo. Si realmente quieres convertirte en un maestro, hacer un cuaderno para anotar las clases y funciones que crees que son importantes y aprender en cualquier momento también es una buena forma de atacar.
A continuación se presenta el MFC más importante.
CWnd: Ventana, que es la clase principal de la mayoría de las "cosas visibles" (casi todo lo visible en Windows es una ventana y hay muchas ventanas pequeñas en una ventana grande), como Ver CView, marco ventana CFrameWnd, barra de herramientas CToolBar, cuadro de diálogo CDialog, botón CButton, etc. una excepción es que el menú (CMenu) no se deriva de la ventana. Esta categoría es enorme, por lo que no es necesario que la aprendas desde el principio, solo conócela.
CDocumento documento es responsable de la interacción entre los datos de la memoria y el disco.
Los más importantes son OnOpenDocument (lectura), OnSaveDocument (escritura en disco) y Serialize (lectura y escritura)
CView, que es responsable de la interacción entre los datos de la memoria y los usuarios. Incluyendo visualización de datos, respuesta de operación del usuario (como selección de menú, respuesta del mouse). Lo más importante es OnDraw (redibujar ventana), que normalmente se inicia con CWnd::Invalidate(). Además, maneja menús, barras de herramientas, teclas de acceso directo y otros mensajes de usuario a través de mapas de mensajes. Se le deben añadir muchas funciones propias, y es con la que más te ocupas.
Texto del dispositivo CDC. Ya sea un monitor o una impresora, dibujan imágenes para que las vea el usuario. Esta imagen está extraída de los CDC. CDC, junto con otros GDI (Graphics Device Interface), completa la visualización de texto, gráficos e imágenes. Piense en el CDC como una hoja de papel. Cada ventana está asociada con un CDC que es responsable de dibujar la ventana. CDC tiene una subclase común CClientDC (área de cliente de ventana), y el dibujo generalmente se completa a través de CClientDC.
Cuadro de diálogo CDialog
Clase de aplicación CWinApp. Similar a la función principal en C, es la entrada y administrador de la ejecución del programa, responsable de la creación y destrucción del programa y de la creación de la ventana principal y la plantilla del documento. La función más utilizada InitInstance(): inicialización.
CGdiObject y subclases, utilizados para dibujar imágenes en texto del dispositivo. Todos deben seleccionarse en el DC antes de su uso.
CPen lápiz, dibuja líneas
CBrush, rellena
CFont font, controla la fuente de salida de texto
CBitmap bitmap p>
p>
Paleta CPalette
Área CRgn, designa un área que se puede utilizar para procesamiento especial.
Archivo CFile. Los más importantes son Abrir, Leer y Escribir
Cadena CString. Encapsula la matriz de caracteres en C y es muy práctico.
CEl punto es (x, y) par
CEl rectángulo correcto es (izquierda, arriba, derecha, abajo)
CEl tamaño es (cx, cy) a (ancho, alto)
3. Haz buen uso de MSDN y ejemplos
Como mejora, los ejemplos recomendados son:
Hola es el programa más simple framework
nDibujo con ratón garabateado. Tutorial: Conceptos básicos de programación, GDI
nDiblook el ejemplo más simple de procesamiento de imágenes
nNavegador de Internet MFCIE
nRegistrar base de datos
nDaoviewDao (acceso a datos objeto) ejemplo. Controles de vista de árbol y columnas
nEjemplo de nCubeOpenGL, dibuja un cuadro giratorio
nServidor HierSvrOLE
nContenedor OclientOLE
nDibujo del mouse nDrawcli. También incluye OLE.
Tablero de escritura WordPad. OLE
Cuatro. Algunas experiencias
A. ¿Por qué usar Windows en lugar de la programación en DOS?
La programación en Windows no es mucho más difícil que la programación en DOS. Tengo tantas ideas y no sé por dónde empezar. De hecho, si conoce el lenguaje C, encontrará que programar en Windows no es más difícil que cuando aprendió el lenguaje C. Si desea convertirse en un maestro en programación de DOS, también necesita aprender cientos de funciones (ya sean TC, BC, MicrosoftC) y tener un conocimiento profundo de las llamadas a funciones de DOS en el nivel del lenguaje ensamblador. Pero ahora, en Windows, puede obtener beneficios varias veces mayores por la misma cantidad de trabajo.
Si antes estaba familiarizado con la programación de DOS y ahora se dedica a la programación de Windows, definitivamente sentirá la gran ventaja en solo dos semanas: en DOS, debe hacerlo todo usted mismo y también existen limitaciones como memoria de 64 K, precisión de visualización, etc. En realidad, es la mitad del resultado con el doble de esfuerzo.
B. ¿Por qué utilizar VC en lugar de otros lenguajes de programación de Windows?
nLa mayoría del software a gran escala (incluido el propio Windows) está compilado en C y C, por lo que las fuentes que pueden ser usado Hay mucho código. Por ejemplo, Photoshop tiene una interfaz de programación VC. Ningún otro idioma tiene ventajas históricas como VC. Además, existen muchas herramientas de desarrollo de VC, desde empresas de control hasta desarrolladores de hardware, sus productos rara vez se atreven a proporcionar interfaces de VC.
nVC es adecuado para organizar proyectos a gran escala (VB no es adecuado)
nBorlandC o C Builder también son muy buenos, no peores que VC. Sin embargo, la compatibilidad de la versión de BC no es buena y aparece una "brecha generacional" de 3.1 a 4.0. Además, VC proporciona documentos y ejemplos extremadamente ricos, y VC tiene muchos más materiales de referencia que BC. Y VC y otros miembros de Visual Studio pueden coordinar su trabajo, lo que resulta beneficioso para la ingeniería de software.
n
C. No aprendas a programar WinAPI al principio, pero es mejor aprender WinAPI en el futuro.
Ten especial cuidado de no comprar. libros sobre programación WindowsSDK al principio. Un ejemplo notorio es "HelloWorld". Varios lenguajes informáticos a menudo dan ejemplos en cursos introductorios para mostrar una línea de texto "HelloWorld". Ya sea en Basic, C, Pascal o incluso en ensamblador, este pequeño programa más simple se puede escribir en solo unas pocas líneas. Pero en los primeros días de la programación de Windows, el famoso ejemplo de "HelloWin" que acabo de mencionar requería organizar un proyecto y escribir cientos de líneas de código para lograrlo. Esto asusta a muchas personas que quieren aprender a programar en Windows. De hecho, la forma más sencilla de mostrar "Helloworld" en Windows es de solo 5 líneas:
#include "windows.h"
voidWinMain()
{
MessageBox(NULL, "HelloWorld!", "MyFirstWindowsApplication", MB_OK
}
Por supuesto, este programa solo crea un cuadro de diálogo muy simple; , pero eso es suficiente.
Si no tienes experiencia en programación SDK, aprender VC significa usar MFC para omitir muchos detalles de la programación de Windows. ¿Por qué no utilizar buenas herramientas si están disponibles? Ahora, cuando escribes "HelloWorld" en VC, solo necesitas escribir una línea de código.
voidCYourView::OnDraw(CDC*pDC)
{
//…….Otros códigos
pDC-gt; (100, 100, "¡HelloWorld!");
}
Pero MFC no es omnipotente. Hay muchas funciones en WinAPI y VC que no se pueden reflejar en MFC. Después de comenzar, la API de Windows sigue siendo muy importante si desea utilizar VC en todas sus capacidades. Además, estas API también se utilizan en otros lenguajes de Windows.
Aprender un idioma es similar a practicar artes marciales. VC, VB, Dlphi, VFP y otros lenguajes de programación de Windows pertenecen a la misma escuela: Windows, aunque los movimientos son diferentes, las habilidades internas son las mismas. Esta es la API (interfaz de programación de aplicaciones) de Windows. alrededor de dos mil funciones. En cualquier arte marcial, no importa cuán complejos sean los movimientos, generalmente se pueden memorizar en un corto período de tiempo, pero la fuerza interna no se logra de la noche a la mañana;
Además, la fuerza interna de cada escuela es diferente. Las escuelas Unix y Linux tienen la fuerza interna de Uinx, la escuela Apple tiene la fuerza interna de Mac y Java es su propia escuela. De lo que estamos hablando aquí sobre aprender VC es simplemente aprender los movimientos. Un mes es suficiente para aprender los movimientos. Si eres inteligente, puedes dominarlos en dos semanas. Los movimientos ópticos son suficientes para asustar a la gente, pero si compites con un experto, tendrás que hacer el ridículo. Para dominar VC, debe estar familiarizado con la API de Windows.
D. Lenguaje de alto nivel y lenguaje natural
Un lenguaje de alto nivel y un lenguaje natural son similares. Hay tres elementos clave:
Sintaxis: es relativamente fácil entender C y la sintaxis básica de C.
Retórica: El arte y estilo de la programación. Normalmente, esto está asociado con la ingeniería de software. Los trucos algorítmicos no son críticos. Ser riguroso, trabajar estrictamente de acuerdo con las normas y al mismo tiempo mostrar una gran creatividad es la verdadera naturaleza de un lingüista.
Vocabulario: ¿Cómo aprovechar el trabajo de otras personas? ¿Cómo puedo utilizar mi trabajo anterior? Ésta es la clave del éxito como ingeniero de software. Si no tiene un vocabulario rico, no podrá escribir buenos artículos y no podrá expresar sus ideas. La gramática de una persona se aprende básicamente antes de ingresar a la escuela primaria, y su nivel retórico también se determina a una edad temprana. Solo es necesario aprender y ampliar continuamente su vocabulario según sea necesario. En la programación de VC, tener un vocabulario amplio significa dominar más clases, funciones y otros componentes de programación. Por ejemplo: Windows SDK, MFC y SDK listos para usar en los campos en los que se especializa, como OpenGL en programación 3D, DirectX en programación multimedia y la biblioteca Victor en procesamiento de imágenes. Además, el dominio de los controles ActiveX suele ser la clave del éxito o del fracaso. Nuestro trabajo de los últimos años también se ha resumido en una biblioteca de clases llamada IPX (Image Processing Framework), que simplifica enormemente el trabajo de procesamiento de imágenes; sin embargo, todavía quedan muchos detalles por resolver. Si algún estudiante está interesado, puede hacerlo. puede participar en este aspecto del trabajo.
Para aprender VC, no debemos utilizar el método con el que aprendemos inglés en la escuela, sino el método que los niños aprenden a hablar. El llamado método de aprendizaje de inglés es la forma en que aprendimos el lenguaje C en nuestros estudios universitarios: comprendemos cada detalle en detalle, memorizamos una gran cantidad de reglas, rara vez practicamos en la computadora, no tenemos problemas prácticos que resolver y finalmente determinamos. los resultados del aprendizaje a través de exámenes. Todo el mundo conoce las consecuencias de este modelo: hemos estudiado inglés durante más de diez años, pero muchos de nosotros todavía sólo sabemos entre cuatro y cinco mil palabras, podemos escribir cientos de palabras y no podemos hablar ni escuchar. Lo que es especialmente terrible es que, No puedo entender la documentación de ayuda de VC. Debemos ser como bebés, aprendiendo gramática, retórica y vocabulario a través del uso; solo podemos inventar lo peor al principio, así como un niño solo puede decir: "Papá toma un auto, un auto" pero "Papá", "; un coche, un coche". Estas palabras son las más necesarias para los niños y la eficiencia del aprendizaje es la más alta. Al aprender VC, debo comenzar desde mis necesidades, primero hacer lo más simple y luego gradualmente volverme más complicado, como una bola de nieve.
Cuando aprendes VC, necesitas especialmente comunicarte con los demás. Si piensas mucho y no entiendes, es posible que otros lo hayan resuelto hace mucho tiempo. Debes ser bueno aprendiendo: busca libros útiles en la librería; aprende de los expertos que te rodean; busca códigos fuente, bibliotecas de clases, componentes, controles y bibliotecas que puedas usar; capaz de resolver los problemas aún más.