Dela via


Fönsterobjekt

MFC levererar klass CWnd för att kapsla in handtaget för HWND ett fönster. Objektet CWnd är ett C++-fönsterobjekt som skiljer sig från HWND det som representerar ett Windows-fönster men som innehåller det. Använd CWnd för att härleda dina egna underordnade fönsterklasser eller använda någon av de många MFC-klasserna som härleds från CWnd. Klass CWnd är basklassen för alla fönster, inklusive ramfönster, dialogrutor, underordnade fönster, kontroller och kontrollstaplar, till exempel verktygsfält. En god förståelse för relationen mellan ett C++-fönsterobjekt och en HWND är avgörande för effektiv programmering med MFC.

MFC tillhandahåller vissa standardfunktioner och hantering av fönster, men du kan härleda din egen klass från CWnd och använda dess medlemsfunktioner för att anpassa de tillhandahållna funktionerna. Du kan skapa underordnade fönster genom att konstruera ett CWnd objekt och anropa funktionen Skapa medlem och sedan anpassa de underordnade fönstren med hjälp av CWnd medlemsfunktioner. Du kan bädda in objekt som härletts från CView, till exempel formulärvyer eller trädvyer, i ett ramfönster. Och du kan stödja flera vyer av dina dokument via delningsfönster, som tillhandahålls av klass CSplitterWnd.

Varje objekt som härleds från klassen CWnd innehåller en meddelandekarta, genom vilken du kan mappa Windows-meddelanden eller kommando-ID:er till dina egna hanterare.

Den allmänna litteraturen om programmering för Windows är en bra resurs för att lära sig hur du använder CWnd medlemsfunktionerna, som kapslar in API:erna HWND .

Funktioner för att hantera en CWnd

CWnd och dess härledda fönsterklasser tillhandahåller konstruktorer, destruktorer och medlemsfunktioner för att initiera objektet, skapa de underliggande Windows-strukturerna och komma åt den inkapslade HWND. CWnd innehåller också medlemsfunktioner som kapslar in Windows-API:er för att skicka meddelanden, komma åt fönstrets tillstånd, konvertera koordinater, uppdatera, rulla, komma åt Urklipp och många andra uppgifter. De flesta Windows API:er för fönsterhantering som tar ett HWND argument, kapslas in som medlemsfunktioner av CWnd. Namnen på funktionerna och deras parametrar bevaras i CWnd medlemsfunktionen. Mer information om Windows-API:er som kapslats in av CWndfinns i klassen CWnd.

CWnd- och Windows-meddelanden

Ett av de främsta syftena med är att tillhandahålla ett gränssnitt för hantering av CWnd Windows-meddelanden, till exempel WM_PAINT eller WM_MOUSEMOVE. Många av medlemsfunktionerna CWnd i är hanterare för standardmeddelanden – de som börjar med identifieraren afx_msg och prefixet "På", till exempel OnPaint och OnMouseMove. Meddelandehantering och mappning omfattar meddelanden och meddelandehantering i detalj. Informationen där gäller även för ramverkets fönster och de som du skapar själv för särskilda ändamål.

Vad vill du veta mer om?

Se även

Windows