1 / 20

Programmation Windows

Programmation Windows. Initiation à l’utilisation de Visual C++ Franck Rubi LaBRI rubi@labri.fr Décembre 2000. Première Partie. Quelques rappels de C++ Découverte de l’environnement VC++ Développer sous VC++ Gestion de l’interface utilisateur MFC et Structures de données 

elmo-wyatt
Download Presentation

Programmation Windows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmation Windows Initiation à l’utilisation de Visual C++ Franck Rubi LaBRI rubi@labri.fr Décembre 2000

  2. Première Partie • Quelques rappels de C++ • Découverte de l’environnement VC++ • Développer sous VC++ • Gestion de l’interface utilisateur • MFC et Structures de données  • Sérialisation • Exercice: Un mini « paint » Franck Rubi, LaBRI

  3. Quelques rappels de C++ • Programmation Objet Classes, champs, méthodes, encapsulation • Généricité Patron de classe « template » • Héritage et Polymorphisme Héritage simple ou multiple, fonctions « virtual » • Exceptions Définitions, génération « throw », capture « try, catch » Franck Rubi, LaBRI

  4. Découverte de l’environnement VC++ • Modèle classique programmes, bibliothèques, ressources, aides, makefile Plusieurs types d ’applications: • WIN32 Application en mode console API WIN32, fenêtre DOS • Win32 Application API WIN32, fenêtre Windows • Programmation à l ’aide de la bibliothèque de classes • Modèle à base de composants, internet Franck Rubi, LaBRI

  5. Découverte de l ’environnement VC++ • Notion de projet 1 projet = 1 dossier • sources (h,cpp), makefile (dsp,dsw), • ressources(rc, ico, rc2) • Aides (hpj, bmp, rtf) • readme.txt • dossiers DEBUG, RELEASE • … Avec dossier debug : plus de 7Mo Franck Rubi, LaBRI

  6. Découverte de l ’environnement VC++ L ’environnement de programmation contient: • Un éditeur de texte avec fenêtre « Workspace » • Compilateur, éditeur de liens • Un outil de debug symbolique puissant • Un éditeur de ressources • Des assistants: • de création de projet (APP WIZARD) • de création de classes, de gestion d’événements,... • Une aide en ligne importante • Différents outils liés (install shield, visual source safe, …) Franck Rubi, LaBRI

  7. Environnement VC++ Franck Rubi, LaBRI

  8. Découverte de l ’environnement VC++ Assistant de création d’application: Franck Rubi, LaBRI

  9. Développer sous VC++ 1. Création d ’une application console (fenêtre DOS) // appliconsole.cpp : Defines the entry point for the console application. #include "stdafx.h" int main(int argc, char* argv[]) { printf("Hello World!\n"); return 0; } Franck Rubi, LaBRI

  10. Développer sous VC++ Franck Rubi, LaBRI

  11. Développer sous VC++ 2. Création d’une application s’exécutant dans une fenêtre Windows Un extrait: BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { HWND hWnd; hInst = hInstance; // Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) {return FALSE;} ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE; } Franck Rubi, LaBRI

  12. Développer sous VC++ Franck Rubi, LaBRI

  13. Développer sous VC++ 3. Une application utilisant la MFC • Bibliothèque de classes de VC++ 6.0 Microsoft Foundation Classes • Architecture document - vue Affichage Sérialisation Utilisateur Fichier Objet « Document » Objet « Vue » Franck Rubi, LaBRI

  14. Développer sous VC++ • Une application MFC - VC++ est: • « Simple document » type bloc-notes • « Multiple document » par exemple Word Disposent d ’une fenêtre principale avec barre de menu classique et barre de boutons. • de type « Dialog », sans manipulation de fichier s ’affiche sous forme d ’une boite de dialogue avec bouton de fermeture. Franck Rubi, LaBRI

  15. Développer sous VC++ 3. Création d’une application MFC en utilisant l ’assistant de création d’application 6 classes créées: CAboutDLG : Boite de dialogue Auteur - Version C…App : La classe principale qui hérite de CWinApp C…Doc : La classe document (Cdocument) C…View : La classe Vue (Cview ou CScrollView) CMainFrame : La fenêtre principale (CMDIFrameWnd) CChildFrame : les fenêtres filles (CMDIChildWnd) Franck Rubi, LaBRI

  16. Développer sous VC++ Franck Rubi, LaBRI

  17. Gestion de l’interface utilisateur • Gestion événements souris et Dessins • WM_RBUTTONDOWN, WM_LBUTTONDOWN, WM_MOUSEMOVE, … • affichage d ’une boite simple AfxMessageBox(…) • Contexte d ’affichage (texte et dessin) Classes CDC et CClientDC fonctions CDC::TextOut, CDC::MoveTo, CDC::LineTo • Epaisseur et couleur (CPen, COLORREF) • Boites de Dialogue • Utilisation de boites prédéfinies (CColorDialog) • Création d ’une boite à l ’aide de l’éditeur de ressources • Menu et Barre d’outils Franck Rubi, LaBRI

  18. MFC et structures de données • Des classes génériques pour les structures de données: • Tableaux dynamiques: CArray méthodes: GetSize, SetSize, Add, operator[], ... • Listes: CList et variantes méthodes: AddHead, AddTail, IsEmpty GetHeadPosition, GetNext, RemoveHead, ... • Table de Hashage: Cmap méthodes: SetAt( ARG_KEYkey,ARG_VALUEnewValue ) InitHashTable( UINT hashSize ), ... Franck Rubi, LaBRI

  19. Sérialisation • Permet sauvegarde et restauration de manière simple // CAppliMFCDoc serialization void CAppliMFCDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } Franck Rubi, LaBRI

  20. Exercice un mini « paint »

More Related