Delen via


Vensterobjecten

MFC levert klasse CWnd om de HWND handle van een venster in te kapselen. Het CWnd object is een C++-vensterobject, dat verschilt van het HWND venster dat een Windows-venster vertegenwoordigt, maar dat het bevat. Gebruik CWnd om uw eigen klassen van kindvensters af te leiden, of gebruik een van de vele MFC-klassen die van CWnd zijn afgeleid. Klasse CWnd is de basisklasse voor alle vensters, waaronder framevensters, dialoogvensters, onderliggende vensters, besturingselementen en besturingsbalken, zoals werkbalken. Een goed begrip van de relatie tussen een C++-vensterobject en een HWND is van cruciaal belang voor effectieve programmering met MFC.

MFC biedt enkele standaardfunctionaliteit en beheer van vensters, maar u kunt uw eigen klasse afleiden van CWnd en de bijbehorende lidfuncties gebruiken om de opgegeven functionaliteit aan te passen. U kunt kindvensters maken door een CWnd object te maken en de Create-lidfunctie aan te roepen en vervolgens de kindvensters aan te passen met behulp van CWnd-lidfuncties. U kunt objecten die zijn afgeleid van CView, zoals formulierweergaven of structuurweergaven, insluiten in een framevenster. En u kunt meerdere weergaven van uw documenten ondersteunen via splitsvensters, geleverd door klasse CSplitterWnd.

Elk object dat is afgeleid van de klasse CWnd bevat een berichtenmap, waarmee u Windows-berichten of opdracht-ID's kunt toewijzen aan uw eigen handlers.

De algemene literatuur over programmeren voor Windows is een goede bron voor het leren gebruiken van de CWnd lidfuncties, die de HWND API's inkapselen.

Functies voor gebruik op een CWnd

CWnd en de afgeleide vensterklassen bieden constructors, destructors en lidfuncties om het object te initialiseren, de onderliggende Windows-structuren te maken en toegang te krijgen tot de ingekapselde HWND. CWnd biedt ook lidfuncties die Windows-API's inkapselen voor het verzenden van berichten, het openen van de status van het venster, het converteren van coördinaten, het bijwerken, schuiven, openen van het Klembord en vele andere taken. De meeste Windows-vensterbeheer-API's die een HWND argument aannemen, worden ingekapseld als lidfuncties van CWnd. De namen van de functies en de bijbehorende parameters blijven behouden in de CWnd lidfunctie. Zie klasse CWnd voor meer informatie over de Windows-API's die zijn ingekapseld door.

CWnd- en Windows-berichten

Een van de belangrijkste doelen is om een interface te bieden voor het verwerken van CWnd Windows-berichten, zoals WM_PAINT of WM_MOUSEMOVE. Veel van de lidfuncties van CWnd zijn handlers voor standaardberichten — die beginnen met de identifier afx_msg en het voorvoegsel "On," zoals OnPaint en OnMouseMove. Berichtafhandeling en mapping behandelt berichten en berichtafhandeling gedetailleerd. De informatie daar geldt ook voor de vensters van het framework en de vensters die u zelf voor speciale doeleinden maakt.

Wat wilt u meer weten over

Zie ook

Ramen