Sdílet prostřednictvím


Třída CWindowImpl

Poskytuje metody pro vytváření nebo subclassing okna.

Důležitá poznámkaDůležité

Tuto třídu a její členy nelze použít v aplikacích, které jsou spuštěny v prostředí Windows Runtime.

template < 
class T, 
class TBase= CWindow, 
class TWinTraits= CControlWinTraits  
> 
class ATL_NO_VTABLE CWindowImpl : 
public CWindowImplBaseT< TBase, TWinTraits>

Parametry

  • T
    Novou třídu, odvozenou z CWindowImpl.

  • TBase
    Základní třída třídy.Výchozí základní třída je CWindow.

  • TWinTraits
    A vlastnostmi třídy definující styly okna.Výchozí hodnota je CControlWinTraits.

Členy

Veřejné metody

Název

Description

CWindowImpl::Create

Vytvoří okno.

CWindowImplBaseT metody

DefWindowProc

Poskytuje výchozí zpracování zprávy.

GetCurrentMessage

Vrátí aktuální zprávu.

GetWindowProc

Vrátí aktuální procedury okna.

OnFinalMessage

Volat po přijetí poslední zprávy (obvykle WM_NCDESTROY).

SubclassWindow

Podřízené okno.

UnsubclassWindow

Obnoví dříve subclassed okně.

Statické metody

GetWndClassInfo

Vrátí instanci statické CWndClassInfo, který spravuje informace třídy okna.

WindowProc

Zpracovává zprávy odeslané do okna.

Datové členy

m_pfnSuperWindowProc

Odkazuje na třídu okna původní okno postupu.

Poznámky

Můžete použít CWindowImpl okno nebo vytvořit podtřídu existující okna. CWindowImpl okno procedura používá mapu zpráv pro směrování zpráv odpovídající obslužné rutiny.

CWindowImpl::Createvytvoří okno na základě informací třídy okna, které je spravováno službou CWndClassInfo.CWindowImplobsahuje DECLARE_WND_CLASS makro, což znamená CWndClassInfo zaregistruje novou třídu okna.Nadřazené třídy chcete existující třídy okna, jsou odvozeny vaší třídy z CWindowImpl a patří DECLARE_WND_SUPERCLASS makra.V tomto případě CWndClassInfo registruje třídu okna, která vychází z existující třídy, ale používá CWindowImpl::WindowProc.Příklad:

class ATL_NO_VTABLE CMyWindow :
   OtherInheritedClasses
   public CComControl<CMyWindow>
          // CComControl derives from CWindowImpl
{
public:
   // 1. The NULL parameter means ATL will generate a
   //    name for the superclass
   // 2. The "EDIT" parameter means the superclass is
   //    based on the standard Windows Edit box
   DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))

   // Remainder of class declaration omitted

[!POZNÁMKA]

Vzhledem k tomu, CWndClassInfo spravuje informace o pouze jednu třídu okna, každé okno vytvořené prostřednictvím instance CWindowImpl je založena na stejnou třídu oken.

CWindowImpltaké podporuje vytváření podtříd okna.SubclassWindow Metoda přikládá stávající okna CWindowImpl objektu a změní postup okno CWindowImpl::WindowProc.Každý výskyt CWindowImpl můžete podtřídy jiného okna.

[!POZNÁMKA]

Pro všechny uvedené CWindowImpl objekt, zavolejte vytvořit nebo SubclassWindow.Obě metody pro stejný objekt nelze vyvolat.

Kromě CWindowImpl, ATL poskytuje CContainedWindow vytvořit okno obsažený v jiném objektu.

Základní třída destruktor (~CWindowImplRoot) zajišťuje, že okno je pryč před objekt zničen.

CWindowImplje odvozen od CWindowImplBaseT, která je odvozena z CWindowImplRoot, která je odvozena z TBase a CMessageMap.

Další informace o

Odkaz

Vytváření ovládacích prvků

Kurz ATL

Pomocí okna knihovny ATL

Okno třídy ATL

Průvodce projektem knihovny ATL

Vytváření projektu knihovny ATL

Hierarchie dědičnosti

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Požadavky

Záhlaví: atlwin.h

Viz také

Referenční dokumentace

BEGIN_MSG_MAP

Třída CComControl

Další zdroje

Přehled třídy ATL