Dela via


Meddelandekategorier

Vilka typer av meddelanden skriver du hanterare för Det finns tre huvudkategorier:

  1. Windows-meddelanden

    Detta omfattar främst de meddelanden som börjar med prefixet WM_ , förutom WM_COMMAND. Windows-meddelanden hanteras av fönster och vyer. Dessa meddelanden har ofta parametrar som används för att avgöra hur meddelandet ska hanteras.

  2. Kontrollera meddelanden

    Detta omfattar WM_COMMAND-meddelanden från kontroller och andra underordnade fönster till deras överordnade fönster. En redigeringskontroll skickar till exempel ett WM_COMMAND-meddelande som innehåller kontrollmeddelandekoden EN_CHANGE när användaren har vidtagit en åtgärd som kan ha ändrat texten i redigeringskontrollen. Fönstrets hanterare för meddelandet svarar på meddelandet på något lämpligt sätt, till exempel när texten i kontrollen hämtas.

    Ramverket dirigerar kontrollmeddelandemeddelanden som andra WM_ meddelanden. Ett undantag är dock BN_CLICKED kontrollmeddelandemeddelande som skickas med knappar när användaren klickar på dem. Det här meddelandet behandlas särskilt som ett kommandomeddelande och dirigeras som andra kommandon.

  3. Kommandomeddelanden

    Detta omfattar WM_COMMAND meddelanden från användargränssnittsobjekt: menyer, verktygsfältsknappar och acceleratornycklar. Ramverket bearbetar kommandon på ett annat sätt än andra meddelanden, och de kan hanteras av fler typer av objekt, enligt beskrivningen i Kommandomål.

Windows-meddelanden och Control-Notification meddelanden

Meddelanden i kategorierna 1 och 2 – Windows-meddelanden och kontrollmeddelanden – hanteras av windows: objekt av klasser som härleds från klassen CWnd. Detta inkluderar CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView, CDialogoch dina egna klasser som härleds från dessa basklasser. Sådana objekt kapslar in ett HWND, ett handtag till ett Windows-fönster.

Kommandomeddelanden

Meddelanden i kategori 3 – kommandon – kan hanteras av en bredare mängd olika objekt: dokument, dokumentmallar och själva programobjektet utöver fönster och vyer. När ett kommando direkt påverkar ett visst objekt är det klokt att låta objektet hantera kommandot. Kommandot Öppna på menyn Arkiv är till exempel logiskt associerat med programmet: programmet öppnar ett angivet dokument när kommandot tas emot. Hanteraren för kommandot Öppna är därför en medlemsfunktion i programklassen. Mer information om kommandon och hur de dirigeras till objekt finns i How the Framework Calls a Handler (Hur ramverket anropar en hanterare).

Se även

Meddelanden och kommandon i ramverket