İçerdiği Windows kullanımı

Atl içerdiği windows ile CContainedWindowuygular. Kapsanan bir pencere iletilerini onları kendi sınıfında işleme yerine bir kapsayıcı nesnesine temsilci pencere temsil eder.

&Notnbsp;  İçerdiği windows kullanmak için CContainedWindow bir sınıf türetmek gerekmez.

İçerdiği windows ya da üst sınıf bir varolan Windows sınıfın veya alt sınıfın varolan penceresini yapabilirsiniz. Bir pencere oluşturmak için superclass varolan bir Windows sınıfı, ilk CContainedWindow nesne Oluşturucu varolan sınıf adını belirtin. Sonra CContainedWindow::Createçağırın. Alt sınıfı için varolan penceresini, Windows sınıfı adı (pass null kurucusuna) belirtmeniz gerekmez. Sadece alt sınıfı pencereye Saplı CContainedWindow::SubclassWindow yöntemini çağırın.

Genelde bir kapsayıcı sınıfı veri üyesi olarak bulunan windows kullanılır. Konteyner pencere olması gerekmez; Ancak, CMessageMap türetilmelidir.

Kapsanan bir pencere diğer ileti haritalar iletilerini işlemek için kullanabilirsiniz. Birden fazla bulunan pencere varsa, her ayrı bir dosyada içerilen pencereye karşılık gelen ileti haritalar, birkaç alternatif bildirmelidir.

Aşağıdaki iki içerdiği windows ile konteyner sınıfı örneğidir:

cMyContainer sınıfı: Genel CMessageMap...
{
public:
 nbsp; CContainedWindow m_wndEdit;
   CContainedWindow m_wndList;

CMyContainer(): m_wndEdit ("Düzenle", bu, 1), m_wndList ("Liste", bu, 2).
   {
   }

...

BEGI&N_MSG_MAP(CMyContainer)
   ALT_MSG_MAP(1)
      / / işleyicileri Düzenle penceresi için buraya gitmek
   ALT_MSG_MAP(2)
      / / işleyicileri Listesi penceresi için buraya gitmek
   END_MSG_MAP()

}

İçerdiği windows hakkında daha fazla bilgi için bkz: SUBEDIT örnek. Superclassing ve sınıflara hakkında daha fazla bilgi için bkz: Pencere yordamı Superclassing ve Pencere yordamı sınıflara Win32 sdk.

Index