Explication de code : Hello World : application MFC multiplateforme pour les appareils de type Smart Device
Mise à jour : novembre 2007
Que vous utilisiez Visual C++ pour cibler des appareils Windows CE (Mobile) ainsi que d'autres appareils mobiles, ou eMbedded Visual C++ pour développer des applications Smart Device, l'Assistant Application MFC C++ multiplateforme pour appareils de type Smart Device simplifie la plupart des tâches usuelles de génération de fichiers projet. Certains de ces fichiers incluent des fichiers de ressources ainsi que des fichiers de configuration de projet multiplateforme. En effet, l'Assistant introduit également le code de démarrage (jumpstart) qui vous permet de vous concentrer sur le développement de vos principales fonctions d'applications d'entreprise.
Cette procédure pas à pas est destinée à vous familiariser avec le code généré automatiquement par l'Assistant Application MFC multiplateforme pour appareils de type Smart Device, afin de vous permettre d'étendre et de modifier facilement l'application en fonction de vos besoins.
Pour plus d'informations, consultez Procédure pas à pas : création d'une application MFC multiplateforme pour les appareils de type Smart Device, Référence MFC pour les périphériques et MFC Reference.
Liste du code d'une application MFC multiplateforme pour Smart Devices C++
Le code généré par l'Assistant inclut les éléments suivants :
Section include.
#include "stdafx.h"
stdafx.h. Pour plus d'informations, consultez Fichiers d'en-tête précompilés.
#include "MFCHello1.h" #include "MFCHello1Doc.h" #include "MFCHello1View.h"
// Configuration Debug.
#ifdef _DEBUG #define new DEBUG_NEW #endif IMPLEMENT_DYNCREATE(CMFCHello1View, CView)
Tables des messages MFC et plus spécifiquement BEGIN_MESSAGE_MAP.
IMPLEMENT_DYNCREATE. Pour plus d'informations, consultez IMPLEMENT_DYNCREATE.
BEGIN_MESSAGE_MAP(CMFCHello1View, CView) END_MESSAGE_MAP()
Code de construction. Pour plus d'informations, consultez Conception de constructeurs ; pour la gestion des exécutions, consultez Exceptions: Exceptions in Constructors.
// CMFCHello1View construction/destruction CMFCHello1View::CMFCHello1View() { // TODO: add construction code here. } CMFCHello1View::~CMFCHello1View() { }
MFC PreCreateWindow.
BOOL CMFCHello1View::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs. return CView::PreCreateWindow(cs); }
Souvenez-vous que le dessin ou la peinture sur l'écran se produit dans la méthode CView::OnDraw. Dans cette méthode, vous pouvez contrôler l'interface graphique GDI, à savoir dans le code, CDC* pDC, qui vous est fourni sous forme de paramètre. N'oubliez pas de supprimer les marques de commentaire. Par exemple vous pouvez utiliser dans votre application toute la puissance du GDI, du texte au dessin de graphiques, en passant par les jeux animés. Dans cet exemple de GDI, la méthode CDC::DrawText est ensuite utilisée pour dessiner le texte "Hello World" à l'intérieur du rectangle défini par CWnd::GetClientRect.
-
// CMFCHello1View drawing void CMFCHello1View::OnDraw(CDC* pDC) { CMFCHello1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here. CRect rect; GetClientRect(&rect); // Length and string to draw are hard coded for simplicity of // example.
DrawText et autres méthodes associées. Pour plus d'informations, consultez CDC Class.
pDC->DrawTextW(_T("Hello World"),11, &rect,1); // nCount ( set to 11) can be a –1, then //lpszString is assumed to be // a long pointer to a null-terminated string // and DrawText method automatically // computes the character count. } // CMFCHello1View diagnostics #ifdef _DEBUG void CMFCHello1View::AssertValid() const { CView::AssertValid(); } #ifndef _WIN32_WCE void CMFCHello1View::Dump(CDumpContext& dc) const { CView::Dump(dc); } #endif // !_WIN32_WCE CMFCHello1Doc* CMFCHello1View::GetDocument() const // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMFCHello1Doc))); return (CMFCHello1Doc*)m_pDocument; } #endif //_DEBUG // CMFCHello1View message handlers
Informations disponibles dans le fichier Lisez-moi créé par l'Assistant
L'Assistant Application a créé cette application MFCHello1 pour vous. Cette application ne montre pas seulement l'essentiel de l'utilisation de Microsoft Foundation Classes mais est également un point de départ pour écrire votre application.
Les fichiers générés sont répertoriés ici, avec un résumé de ce qu'ils contiennent. Ces fichiers constituent collectivement votre point de départ dans le développement de l'application MFC.
Le nom HelloMFC est utilisé pour obtenir un exemple. Vous pouvez utiliser votre propre nom de projet.
HelloMFC.vcproj
Fichier projet principal qui est généré pour les projets Visual C++ en utilisant un Assistant Application. Il contient des informations sur la version de Visual C++ utilisée pour générer le fichier ainsi que des informations relatives aux plateformes, configurations et fonctionnalités projet que vous avez sélectionnées dans l'Assistant Application.
HelloMFC.h
Fichier d'en-tête principal pour l'application. Il inclut d'autres en-têtes spécifiques au projet et déclare la classe d'application CMFCHello1App.
HelloMFC.cpp
Fichier source principal de l'application qui contient la définition de classe pour la classe d'application CMFCHello1App.
HelloMFCppc.rc
Fichier de ressources principal du projet qui répertorie toutes les ressources Microsoft Windows que le projet utilise lorsqu'il compile pour la plateforme Pocket PC ou une plateforme qui prend en charge le même modèle d'interface utilisateur. Il inclut les icônes, les bitmaps et les curseurs qui sont stockés dans le sous-répertoire RES. Ce fichier peut être directement modifié dans Microsoft Visual C++. Les ressources de votre projet se trouvent dans 1033. Lorsque le fichier .rc est rendu persistant, les définitions dans la section Données sont persistantes en tant que version hexadécimale de leur valeur numérique plutôt que nom convivial de la définition.
res\HelloMFCppc.rc2
Fichier contenant des ressources qui ne sont pas modifiées par Microsoft Visual C++. Vous devez placer toutes les ressources non modifiables par l'Éditeur de ressources dans ce fichier.
HelloMFCsp.rc
Fichier de ressources principal du projet qui répertorie toutes les ressources Microsoft Windows que le projet utilise lorsqu'il compile sur la plateforme Smartphone ou une plateforme qui prend en charge le même modèle d'interface utilisateur. Il inclut les icônes, les bitmaps et les curseurs qui sont stockés dans le sous-répertoire RES. Ce fichier peut être directement modifié dans Microsoft Visual C++. Les ressources de votre projet se trouvent dans 1033. Lorsque le fichier .rc est rendu persistant, les définitions dans la section Données sont persistantes en tant que version hexadécimale de leur valeur numérique plutôt que nom convivial de la définition.
res\HelloMFCsp.rc2
Fichier qui contient des ressources qui ne sont pas modifiées par Microsoft Visual C++. Vous devez placer toutes les ressources non modifiables par l'Éditeur de ressources dans ce fichier.
res\HelloMFC.ico
Fichier icône, utilisé en tant qu'icône de l'application. Cette icône est incluse dans le fichier de ressources principal.
MainFrm.h, MainFrm.cpp
Fichiers contenant la classe de frame CMainFrame dérivée de CFrameWnd et contrôlant toutes les fonctionnalités de frame SDI.
L'Assistant Application crée également un type de document MFC et un affichage MFC :
HelloMFCDoc.h, HelloMFCDoc.cpp
Fichiers qui contiennent votre classe HelloMFCDoc. Modifiez ces fichiers pour ajouter vos données de document spéciales et implémenter l'enregistrement et le chargement de fichier (utilisation de CMFCHello1Doc::Serialize).
HelloMFCView.h, HelloMFCView.cpp
Fichiers qui contiennent votre classe HelloMFCView. Objets HelloMFCView utilisés pour afficher des objets HelloMFCDoc.
StdAfx.h, StdAfx.cpp
Fichiers utilisés pour générer un fichier d'en-tête précompilé (PCH) nommé HelloMFC.pch et un fichier de types précompilé nommé StdAfx.obj.
Resourceppc.h et Resourcesp.h
Fichier d'en-tête standard qui définit de nouveaux ID de ressource. Microsoft Visual C++ lit et met à jour ce fichier.
L'Assistant Application utilise TODO: pour indiquer les parties du code source que vous pouvez ajouter ou personnaliser.
Si votre application utilise MFC dans une DLL partagée, et si elle est dans une langue autre que la langue actuelle du système d'exploitation, vous pouvez copier le fichier MFC80XXX.DLL des ressources localisé correspondant dans votre répertoire application. Dans ce nom, « XXX » représente l'abréviation de la langue. Par exemple, MFC80DEU.DLL contient des ressources traduites en allemand. Sinon, certains des éléments d'interface de votre application resteront dans la langue du système d'exploitation.