共用方式為


使用所包含的視窗

ATL 實作包含了 CContainedWindowT的視窗。 所包含的視窗表示委派其訊息為容器物件而不是處理它們在其類別的視窗。

注意事項注意事項

您不需要從 CContainedWindowT 衍生類別才能使用所包含的視窗。

使用所包含的視窗,您可以在的 Superclass 現有 Windows 分類或子類別現有視窗。 若要建立類別的 Superclass 現有視窗中的 視窗中,請先指定現有類別名稱在建構函式 (Constructor) CContainedWindowT 物件。 然後呼叫 CContainedWindowT::Create。 若要子類別化現有的視窗中,您不需要指定視窗類別名稱 (如建構函式中傳遞 NULL )。 請改為使用控制代碼的 CContainedWindowT::SubclassWindow 方法加入子類別化的視窗。

在容器的資料成員分類,您通常會使用所包含的視窗。 容器不需要是視窗;然而,它必須從 CMessageMap衍生。

所包含的視窗可以使用替代的訊息對應的處理會自己的訊息。 如果您有多個被收納的視窗,您應該宣告數個替代的訊息對應,每次都使用不同的內含視窗對應。

範例

下列容器類別的範例有兩個內含視窗中:

class CMyContainer : public CMessageMap
{
public:
   CContainedWindow m_wndEdit;
   CContainedWindow m_wndList;

   CMyContainer() : m_wndEdit(_T("Edit"), this, 1), 
                    m_wndList(_T("List"), this, 2)
   {
   }

   BEGIN_MSG_MAP(CMyContainer)
   ALT_MSG_MAP(1)
      // handlers for the Edit window go here
   ALT_MSG_MAP(2)
      // handlers for the List window go here
   END_MSG_MAP()

};

如需從內容之視窗的詳細資訊,請參閱 SUBEDIT 範例。

請參閱

其他資源

ATL 視窗類別