Introduction à la programmation MFC



Documents pareils
Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Once the installation is complete, you can delete the temporary Zip files..

Le langage C. Séance n 4

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Note Technique. 1. Objectif. 2. Prérequis. 3. Installation

Utilisation de l outil lié à MBKSTR 9

Atelier «personnaliser l environnement de l ordinateur mai 2015

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Création du projet : 1 sur 13

LES BIBLIOTHEQUES DE WINDOWS 7

Comment réaliser une capture d écran dans Word. Alors comment ouvrir une page Word?

1. Ouvrir Internet Explorer Faire défiler une page Naviguer dans un site Internet Changer d adresse Internet (URL) 2

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Fiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5

TD3 - Facturation avec archivage automatisé

Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

Google Drive, le cloud de Google

Comment faire un Mailing A partir d une feuille Calc

Création d une connexion VPN dans Windows XP pour accéder au réseau local de l UQO. Document préparé par le Service des technologies de l information

Les PowerToys pour Windows XP

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Connexion à distance. Pour configurer les automates Beckhoff via un PC de programmation VERSION : 1.0 / PH

Réseau local entre Windows Xp et 7

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Comment accéder à d Internet Explorer

GUIDE D INSTALLATION INTERNET haute vitesse

Manuel utilisateur Netviewer one2one

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

ENVOI EN NOMBRE DE MESSAGES AUDIO

Boot Camp Guide d installation et de configuration

Silhouette Studio Leçon N 2

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Mode Opératoire Windows XP

8. Gestionnaire de budgets

Conférence Web sur demande de TELUS Guide de référence rapide

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Corrigé de l'atelier pratique du module 6 : Transfert de données

Un ordinateur, c est quoi?

Manuel d utilisation de l outil collaboratif

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Internet Explorer. Microsoft. Sommaire :

Gestion des documents avec ALFRESCO

FICHE PEDAGOGIQUE. Questions à poser. - Avant de démarrer l ordinateur,

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Présentation des PowerToy pour Windows XP

Un exemple avec WORKSPACE d'interwrite

Utilisation du logiciel GALAAD

Publier dans la Base Documentaire

Guide d installation logicielle

Numérisation. Copieur-imprimante WorkCentre C2424

Utilisation de l éditeur.

13) Calibrage du tableau Interwrite Dualboard

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Correction des Travaux Pratiques Organiser son espace de travail

Office 365/WIFI/Courrier. Guide pour les étudiants

Gestionnaire de champs PRO

Importation de fichiers Eagle

WinARC Installation et utilisation D un écran déporté (Windows 7)

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Création de Sous-Formulaires

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

Convertisseur BBAN/IBAN

Les sauvegardes de l ordinateur

L ORDINATEUR FACILE D ACCÈS!

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

Guide de configuration. Logiciel de courriel

Publier un Carnet Blanc

Importation et exportation de contenu

Indiquer l'espace libre sur le disque dur

MS SQL Express 2005 Sauvegarde des données

Quelques points importants pour mieux connaître votre clé Internet mobile

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

GUIDE D INSTALLATION INTERNET haute vitesse

Logiciel PICAXE Programming Editor

Guide de l utilisateur Mikogo Version Windows

TwinCAT 3 C++ Création de modules C++ sous TwinCAT 3 VERSION : 1.0 / PH

INSTALLATION DBSWin En réseau

Gestion des fichiers sur micro-ordinateur

Préparation à l examen EFA en Macro

DESINSTALLER L'ANTIVIRUS FIREWALL

Introduction à Windows 8

La saisie d un texte

WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires :

L accès à distance du serveur

Utilisation du logiciel ModellingSpace

Accès à distance sécurisé au Parlement (ADSP)

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Activité 11 : Nuage de points ou diagramme de dispersion

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

L environnement de travail de Windows 8

Tutorial et Guide TeamViewer

Transcription:

Université du Québec École de technologie supérieure Département de génie de la production automatisée Introduction à la programmation MFC Professeur: Tony Wong, Ph.D., ing. Chapitre 3 1 Introduction Le cadre de travail MFC (Microsoft Foundation Classes) sert à faciliter le développement des applications Windows L étude de MFC: Bien connaître l apport de ce cadre de travail; Faciliter la construction des interfaces graphiques; Saisir la puissance de l approche orientée objet; Exemples concrets de réalisation orientée objet. 2 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 1

Philosophie de base Gestionnaires d'événement Événements Actions Traitement du clavier Entrées du clavier Logique et contrôle du programme Traitement de la souris (bouton gauche) Traitement de la souris (bouton droit) Traitement pour le déplacement de la souris Système Windows Bouton gauche de la souris activé Bouton droit de la souris activé Déplacement de la souris Autres traitements... Autres actions... Application Windows 3 Expédition et routage des messages (1) L utilisateur du programme déclenche des événements par des actions: L utilisateur clique sur un bouton. L utilisateur modifie la taille d une fenêtre. Etc. Le programme lui-même peut également déclencher des événements: L activation d une alarme Windows. Événements envoyés par la logique du programme. Etc. 4 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 2

Expédition et routage des messages (2) Les événements Windows sont traduits en messages par le MFC. Noter bien, dans la littérature de MFC, les événements reliés aux éléments de l interface graphique sont appelés des notifications. Une grande partie du travail d un programme Windows consiste à traiter les messages et les notifications. On appelle aussi le modèle de Windows la programmation événementielle. 5 Expédition et routage des messages (2) Dans le MFC, le routage des messages est centralisé à l aide des cartes de messages (Message Maps). Chaque composant d un programme MFC qui disposant d une queue de messages peut avoir une carte de message. Cela signifie que les cartes de messages sont associées à des classes dérivées de MFC. Les cartes de messages sont normalement instaurées par le AppWizard à l aide de macros. 6 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 3

Expédition et routage des messages (3) La syntaxe de ces macros: DECLARE_MESSAGE_MAP Placée dans la déclaration d une classe dérivée de MFC dans le fichier.h BEGIN_MESSAGE_MAP(CXtractCommGUIDlg, CDialog) //{{AFX_MSG_MAP(CXtractCommGUIDlg) ON_WM_PAINT() : : : ON_BN_CLICKED(ID_ACTION, OnAction) //}}AFX_MSG_MAP END_MESSAGE_MAP() Gestionnaires des événements Placée dans la définition d une classe dérivée de MFC dans le fichier.cpp 7 Expédition et routage des messages (4) Il existe un nombre élevé de macros pour la gestion des événements! C est pour cette raison que l on utilise le ClassWziard. Le ClassWizard présente les événements possibles des éléments graphiques d un projet de programmation. Ainsi, on n a pas à se souvenir le nom de ces macros. On active le ClassWizard 8 par ctrl-c. ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 4

Quelques classes de MFC (1) Le MFC comprend: Classes représentant les éléments de l interface graphique. Fenêtres, boutons, listes déroulantes, combo box, etc. Classes utilitaires facilitant la programmation orientée objet. Point (coordonnées de la souris, dimension des fenêtres, etc.) Collections (semblables à STL mais moins riche) Date, fichiers, etc. Enveloppes (wrappers) des fonctions systèmes Win32. 9 Quelques classes de MFC (2) Classe CObject: Classe de base abstraite utilisée pour la dérivation des autres classes de MFC. Elle est l ancêtre de la plupart des classes de MFC. Elle réalise le concept de sérialisation (persistance des objets). Elle entrepose les informations nécessaires pour la détermination des classes (runtime classe information). Elle permet le diagnostic des objets (object dumps). 10 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 5

Quelques classes de MFC (3) Classe CWinApp: Elle représente une application Windows. Le AppWizard génère une classe dérivée de CWinApp pour chaque programme. Puisqu elle représente une application Windows, elle dispose aussi d une queue de messages. Puisqu elle dispose d une queue de messages, le AppWizard générera également les macros DECLARE_MESSAGE_MAP et BEGIN_MESSAGE_MAP(,) 11 Quelques classes de MFC (4) class CAmusantApp : public CWinApp { public: CAmusantApp(); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAmusantApp) public: virtual BOOL InitInstance(); //}}AFX_VIRTUAL // Implementation //{{AFX_MSG(CAmusantApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG DECLARE_MESSAGE_MAP() 12 }; ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 6

Quelques classes de MFC (5) Il existe une fonction membre très importante dans la classe CWinApp: Il s agit de InitInstance(). C est dans cette fonction membre que l on règle les paramètres de l application: Indiquer le type de bibliothèque MFC à utiliser. Enregistrer/créer les clés appropriées dans le registre de Windows. Enregistrer le patron document/vue. Charger l icône de l application, etc. 13 Quelques classes de MFC (6) Lorsqu il s agit d une application basée sur un panneau de dialogue: Créer le panneau de dialogue. Donnant ainsi l aspect visuel du programme. Donc, CWinApp n a pas de représentation graphique! Il s agit plutôt d une classe de gestion (house keeping) nécessaire à tous les programmes MFC. 14 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 7

Quelques classes de MFC (7) BOOL CAmusantApp::InitInstance() { #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif // Call this when using MFC in a shared DLL // Call this when linking to MFC statically CAmusantDlg dlg; m_pmainwnd = &dlg; int nresponse = dlg.domodal(); if (nresponse == IDOK) { // TODO: Place code here to handle when the dialog is dismissed with OK } else if (nresponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. 15 return FALSE; Quelques classes de MFC (8) Classe CWnd: Classe abstraite représentant une fenêtre. En effet, dans le MFC, tous les contrôles (éléments d interface graphique) sont des fenêtres! Donc, CWnd est la classe de base de tous les contrôles. Cette classe dispose d un ensemble de fonctions membres pour réaliser la gestion et la manipulation d une fenêtre. Évidemment, CWnd est dérivée de CObject. 16 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 8

Quelques classes de MFC (9) Classe CDialog: Elle est dérivée de CWnd. Classe représentant un panneau de dialogue. Elle possède donc une représentation graphique. De plus, elle possède la capacité de gérer le traçage des contrôles déposés. C est pour cette raison les applications basées sur un panneau de dialogue sont les plus simples à réaliser. 17 Application MDI (1) MDI? Multiple Document Interface Ce genre d application utilise le concept de DOC/VIEW. DOC? VIEW? Entrepôt de données. Méthode de présentation des données. Donc, dans une application MDI, on peut avoir: Plusieurs entrepôt de données Type de données différentes (son, image, texte, etc.) Plusieurs façons de présenter les données Visionneur, graphisme, éditeur, etc. 18 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 9

Application MDI (2) Fenêtres enfants Cadre principal Menu dans le cadre principal 19 Application MDI (3) Le cadre principal est créé par CMainFrame Le menu et les barres d'outils sont créés par CMainFrame Les fenêtres enfants sont créées par CMDIChildWnd Les classes principales d une application MDI: CMainFrame CMDIChildWnd CMenu CToolBar Normalement, on crée nos propres classes MDI par dérivation. 20 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 10

Application MDI (4) Dans une application MDI de MFC, la gestion des fenêtres est réalisée automatiquement. Autrement dit, les options de ce menu sont normalement réalisées par le code généré par le AppWizard. 21 Application MDI (5) Les relations qui existent dans le DOC/VIEW: Objet Application Pointeur Document template Pointeur Fenêtre enfant Pointeur Créer pointer vers Objet Document Pointeur Objet Vue Pointeur 22 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 11

Hiérarchie partielle des classes MDI CObjet Classe abstraite de base Contrôle d'exécution CWinThread CWinApp Classe Application CMDIChildWnd Fenêtre enfant MDI Cadre principal CFrameWnd CCmdTarget Routage des messages DOC/VIEW CWnd Fenêtre de base CDocument CView DOC/VIEW CMDIFrameWnd Cadre principal MDI CDocTemplate CMDIDocTemplate CScrollView Vue avec barres défilement Document template de base Document template MDI 23 Affichage graphique (1) Tous les affichages sont réalisés de manière graphique. On ne peut dessiner directement à l écran. L affichage est réalisé par le biais d un objet de classe CDC. CDC Classe pour Device Context de base CClientDC CWindowDC CPaintDC CMetaFileDC Traçage dans l'espace réservé d'une fenêtre Traçage dans toute l'espace d'une fenêtre Traçage en réponse au message WM_PAINT Traçage dans un fichier de type Metafile 24 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 12

Affichage graphique (2) L événement correspondant à la mise jour des éléments graphiques d une application: WM_PAINT La macro normalement associée à cet événement est: ON_WM_PAINT() La fonction membre représentée par cette macro est: OnPaint() 25 Affichage graphique (3) Voici à quoi ressemble l affichage graphique dans une application MFC: // 1) construire un client DC du panneau // de dialogue (CDialog est dérivé de CWnd) CClientDC DlgDC(this); // 2) créer un dessin sur le bureau! for (int x=0; x<150; x++) for (int y=0; y<150; y++) // Mettre des pixels en couleur DlgDC.SetPixel(x, y, x * y); // 3) libérer le DC // Pas besoin pour les classes dérivées // de CDC! 26 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 13

Affichage graphique (4) Affichage dans l espace réservé d une fenêtre (dans ce cas un panneau de dialogue): Le DC (Device Contexte) à utiliser est CClientDC. 27 Affichage graphique (5) Affichage partout sur le bureau: Le DC (Device Contexte) à utiliser est CDC. 28 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 14

Fin du chapitre 3 Lire les notes de cours du chapitre 3. Continuer la lecture des autres chapitres. Étudier les programmes exemples (disponibles sur la page web de GPA789). N oubliez pas: C++ est bien plus que du C. 29 ÉTS - GPA, (C) Tony Wong, Ph.D., ing. 15