Bagikan melalui


Menggunakan Windows Terkandung

ATL mengimplementasikan jendela yang terkandung dengan CContainedWindowT. Jendela yang terkandung mewakili jendela yang mendelegasikan pesannya ke objek kontainer alih-alih menanganinya di kelasnya sendiri.

Catatan

Anda tidak perlu memperoleh kelas untuk CContainedWindowT menggunakan jendela yang terkandung.

Dengan jendela yang terkandung, Anda dapat superclass kelas Windows yang ada atau subkelas jendela yang ada. Untuk membuat jendela yang superclasses kelas Windows yang ada, pertama-tama tentukan nama kelas yang ada di konstruktor untuk CContainedWindowT objek. Kemudian hubungi CContainedWindowT::Create. Untuk subkelas jendela yang ada, Anda tidak perlu menentukan nama kelas Windows (teruskan NULL ke konstruktor). Cukup panggil CContainedWindowT::SubclassWindow metode dengan handel ke jendela yang disubkelas.

Anda biasanya menggunakan jendela yang terkandung sebagai anggota data kelas kontainer. Kontainer tidak perlu menjadi jendela; namun, itu harus berasal dari CMessageMap.

Jendela yang terkandung dapat menggunakan peta pesan alternatif untuk menangani pesannya. Jika Anda memiliki lebih dari satu jendela yang terkandung, Anda harus mendeklarasikan beberapa peta pesan alternatif, masing-masing sesuai dengan jendela yang terkandung terpisah.

Contoh

Berikut ini adalah contoh kelas kontainer dengan dua jendela yang terkandung:

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()

};

Untuk informasi selengkapnya tentang jendela yang terkandung, lihat sampel SUBEDIT .

Lihat juga

Kelas Jendela