Professional Documents
Culture Documents
UNIVERSIDAD CATLICA SANTA MARA P.P. INGENIERA DE SISTEMAS CURSO: PROGRAMACIN II M.SC. CARLO CORRALES DELGADO
1 M.Sc. Carlo Corrales
TEMAS A TRATAR
Jerarquas de MFC Notacin Hngara Arquitectura de una aplicacin Anlisis de una aplicacin
La Clase Aplicacin La clase Ventana Marco La clase Documento La clase Vista
Jerarquas de MFC
DECLARE_DYNCREATE: permite crear objetos de una clase derivada de CObject durante la ejecucin CCmdTarget: objeto que tiene un mapa de mensajes y puede procesarlo
3
Soporte Grafico:
Dibujo de graficos: CDC -> CClienteDC, CPaintDC, CWindowDC Objeto de dibujo de graficos: CGdiObject -> CBitmap, CBrush, CFont, CPalette, CPen Controles Graficos: CDockState, CImageList
Soporte de Sistema:
Menus: CMenu Excepciones: CException Sincronizacion: CSyncObject Conexin a bases de datos: CDatabase, CRecordset Objetos de acceso a datos: CDaoDatabase, CDaoQueryDef Programacion de redes: CAsynSocket Servicios de Internet: CInternetSEssion, CFileFind
Notacin Hngara
Convenios para nombrar las variables Consiste en hacer que el nombre de una variable empiece con una o ms letras minsculas que indiquen el tipo de dato Por ejemplo m_pszAppName se trata de un dato miembro de una clase, definido como puntero a una cadena de caracteres terminada con el carcter nulo. c:char, by:byte,n:short,i:int, b:bool, w:word, l:long, dw:DWord, fn:funcin, s:cadena de caracteres, a:array, p:puntero, h:handle, m_:miembro de una clase, C:clase, ID:identificador
8
La biblioteca MFC permite construir aplicac. SDI y MDI Una SDI permite tener abierta una ventana marco con su vista, para presentar el documento que tiene abierto, que es nico por cada ejemplar activo. Una MDI permite tener abiertas varias ventanas marco dentro de la ventana principal. O sea tiene una ventana marco principal dentro de la cual pueden abrirse varias ventanas marco hijas, de las cuales solo una estar activa. Ninguna de ellas tiene la barra de men Un nico objeto Aplicacin gestiona una o ms plantillas de documento. Cada plantilla crea y gestiona uno o ms documentos (SDI o MDI). El usuario ve y manipula un documento a travs de la vista contenida dentro de la ventana marco
9
Objeto Aplicacin (CWinApp): iniciar, ejecutar y finalizar la aplicacin Objeto Plantilla de Doc (CDocTemplate): conecta un objeto documento con sus vistas asociadas y con las ventanas marcos Objeto Documento (CDocument): almacena los datos de la aplicacin Archivo Abrir, Archivo Cerrar Objeto Ventana Marco (CFrameWnd): proporcionan a las vistas, los controles estndar de una ventana, o sea el marco, la barra de ttulo, men de control, barra maximizar, etc. Objeto Vista (CView): la ventana que hace de interfaz entre el usuario y los datos del documento.
10
La Clase Aplicacin
En nuestro ejemplo CSaludoApp est en saludo.h Class CSaludo: public CWinApp { public: CSaludoApp( ); virtual BOOL InitInstance( ); //... afx_msg void OnAppAbout( ); } Funcin virtual: se espera sobreescribirla
11
class CMainFrame : public CFrameWnd { protected: CMainFrame( ); DECLARE_DYNCREATE(CMainFrame) CStatusBar m_wndStatusBar; CToolBar m_wndToolBar; } Hereda la funcionalidad para procesar cualquier mensaje Windows al manipular la ventana. Por ejemplo, modificar su tamao, maximizarla, moverla Con DECLARE_DYNCREATE se puede crear objetos dinmicamente
12
La clase Documento
Cuando se quiere aadir un nuevo dato, se aade un dato miembro a la clase. (Ej. m_Mensaje) Hay 2 funciones que se redefinen: OnNewDocument y Serialize. (Abrir Nuevo y cuando es cargado o guardado)
13
La clase Vista
Class CSaludoView: public CView { protected: CSaludoView( ); DECLARE_DYNCREATE(CSaludoView) public: CSaludoDoc *GetDocument( ); //overrides public: virtual void OnDraw(CDC * pDC); virtual BOOL PreCreateWindow( ); //... DECLARE_MESSAGE_MAP( ) } Cuando ocurre un evento, hay que redibujar la vista (OnDraw). Tenemos un puntero al documento de la vista que despus usa para llamar a la funcin GetMensaje
14
15
Cada ventana tiene una ventana padre, y cero o ms ventanas hermanas (siblings) La raz de las ventanas es el Escritorio Una ventana de nivel superior no tiene padre o su padre es el Escritorio Una ventana padre de una hija (Child) es una ventana de nivel superior en jerarqua. Ej. un botn es ventana hija de la ventana dilogo. Una vista es ventana hija de la ventana marco Una ventana puede tener un propietario. Ej. la ventana principal es propietaria de la ventana de Dilogo. La ventana padre de ambas es el Escritorio (son hermanas) Una ventana propiedad de otra aparece siempre encima de su propietaria y desaparece si su propietaria es minimizada
16
Aplicaciones
17
Aplicaciones
Aplicaciones