Looking for mfc Answers? Try Ask4KnowledgeBase
Looking for mfc Keywords? Try Ask4Keywords

mfcKomma igång med mfc


Anmärkningar

Microsoft Foundation Classes , eller MFC , är ett bibliotek som tillhandahåller ett objektorienterat omslag runt Win32 API. Genom att kapsla in det "råa" Win32 API i C ++ klasser gör MFC det betydligt enklare att skapa GUI-applikationer och hantera resurser.

MFC har funnits mycket länge. Det introducerades först 1992 med version 7 av Microsofts C / C ++ kompilator. Vid denna tidpunkt började C ++ -utvecklingen precis börja börja. Senare versioner av Visual Studio har levererats med betydligt förbättrade versioner av MFC. Den ingår fortfarande i den senaste versionen av Visual Studio 2015. Men dess gamla rötter är tyvärr ganska synliga. Eftersom det mesta har utvecklats före standardiseringen av C ++ -språket utnyttjar MFC-klasserna inte fullt ut moderna C ++ -funktioner som mallar, ger sina egna anpassade implementationer av andra standard C ++ -funktioner som RTTI och använder många icke-standardidiomer . Dessa fakta gör det nästan omöjligt att sammanställa en MFC-applikation med någon annan kompilator än Microsofts. På plussidan är MFC dock väl integrerad i Visual Studio, vilket gör utvecklingen betydligt enklare.

Under tidig utveckling var biblioteket känt som Application Framework Extensions (förkortat till AFX). Marknadsavdelningen ändrade senare namnet till MFC, men det var för sent att ändra någon av koden, så mycket av koden hänvisar fortfarande till "Afx" istället för "Mfc". Ett märkbart exempel är den standardförkompilerade rubrikfilen som automatiskt genereras av Visual Studio: den heter StdAfx.h .

Den 7 april 2008 släppte Microsoft en uppdatering av MFC-klasserna som en out-of-band-uppdatering till Visual Studio 2008 och MFC 9. Uppdateringen har nya användargränssnittskonstruktioner, inklusive band (liknande det i Microsoft Office 2007) och tillhörande UI-widgetar, helt anpassningsbara verktygsfält, dockningsrutor (som Visual Studio 2005) som antingen kan flyttas eller dockas till valfri sido- och dokumentflikar. Den nya funktionaliteten tillhandahålls i nya klasser så att gamla applikationer fortfarande körs. Den här uppdateringen bygger på toppen av BCGSofts BCGControlBar Library Professional Edition och namngavs som MFC Feature Pack .

Så nu består MFC från två bibliotek med olika tillvägagångssätt:

  • Klassisk MFC (omslag för Win32 API).
  • MFC Feature-paket (blandad uppsättning från Win32 API-kontroller och nya självritande kontroller, som Ribbon).

Se även:

Ett grundläggande MFC-program

// Include the MFC header:
// (you do not need to and should not include the standard Windows headers, e.g. 
// Windows.h)
#include <AfxWin.h>               // MFC core and standard components
// The following header defines resource constants, such as dialog and control IDs:
#include "resource.h"

// The basic element of an MFC application is a class that inherits from CWinApp.
class CMyApp : public CWinApp
{
    // This gets called as the application gets initialized.
    virtual BOOL InitInstance()
    {
        // Initialize a CDialog object to show in a moment.
        CDialog dlg(IDD_DIALOG1);
        // Display the dialog box as a modal dialog box.
        dlg.DoModal();

        // Return FALSE from this method to exit the application.
        return FALSE;
    }
};

// The one and only application object.
CMyWinApp theApp;
 

Sammanfattning:

IDD_DIALOG1 ska vara ID för en dialogruta definierad i en projektresursfil skapad av en resursredigerare, till exempel den som är inbyggd i Visual Studio. (En resursfil har i allmänhet .rc-förlängningen.) För att anpassa beteendet hos en dialog kan du hämta en ny klass från CDialog.

En modal dialogruta kör sin egen meddelandeslinga. Samtalet "dlg.DoModal ();" kommer inte tillbaka förrän dialogen har stängts av användaren.

Om vi hade returnerat SANT från InitInstance (), skulle det ha startat programmets meddelandeslinga. Detta används när du har en mer komplex app som inte är dialogbaserad.