şab&lon lt; sınıfTBaseCWindow, sınıf =TWinTraits = CControlWinTraits gt;
CContainedWindowT sınıfı: &Genel TBase
Parametreleri
TBase
Yeni sınıfınızın temel sınıfı. CWindow varsayılan taban sınıftır.
TWinTraits
Pencere stilleri tanımlayan özellikleri sınıf. CControlWinTraits varsayılandır.
&Not nbsp; CContainedWindow CContainedWindowTbir uzmanlık olduğunu. Temel sınıf veya özellikleri değiştirmek isterseniz, CContainedWindowT doğrudan kullanın.
CContainedWindow başka bir nesnenin içinde bulunan bir pencere uygular. CContainedWindow' nın pencere yordamı bir iletiyi göster içeren nesneyi uygun işleyicileri iletileri kullanır. Bir CContainedWindow nesnesi oluştururken, hangi iletiyi göster kullanılması gerektiğini belirtin.
CContainedWindow yeni bir pencere superclassing tarafından varolan bir pencere sınıfı oluşturmanıza olanak sağlar. Create yöntemi, varolan bir sınıfa dayanır ama CContainedWindow::WindowProckullanan bir pencere sınıfı ilk kaydeder. Oluşturun , sonra bu yeni pencere sınıf tabanlı bir pencere oluşturur. CContainedWindow ' ın her kopyası için üst sınıf bir farklı pencere sınıfı.
CContainedWindow , pencere sınıflara da destekler. SubclassWindow yöntemi, varolan penceresini CContainedWindow nesnesine ekler ve CContainedWindow::WindowProciçin pencere yordamı değiştirir. CContainedWindow ' ın her kopyası için alt farklı bir pencere.
&Notnbsp; Verilen herhangi bir CContainedWindow nesnesi için Oluştur veya SubclassWindowarayın. Size değil çağırır iki yöntem de aynı nesne üzerinde.
Atl nesne Sihirbazı'nda temel ekle denetim seçeneğini kullandığınızda, sihirbaz denetimi gerçekleştiren sınıf için CContainedWindow veri üyesi otomatik olarak ekler. Aşağıdaki örnek alınır SUBEDIT örnek ve nasıl bulunan pencere ilan gösterir
class CAtlEdit : ...
{
public:
// Declare a contained window data member
CContainedWindow m_EditCtrl;
// Initialize the contained window:
// 1. Pass "EDIT" to specify that the contained
// window should be based on the standard
// Windows Edit box
// 2. Pass 'this' pointer to specify that CAtlEdit
// contains the message map to be used for the
// contained window's message processing
// 3. Pass the identifier of the message map. '1'
// identifies the alternate message map declared
// with ALT_MSG_MAP(1)
CAtlEdit() : m_EditCtrl(_T("EDIT"), this, 1)
{
m_bWindowOnly = TRUE;
}
// Declare the default message map,
// identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
...
MESSAGE_HANDLER(WM_CREATE, OnCreate)
...
// Declare an alternate message map,
// identified by '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()
// Define OnCreate handler
// When the containing window receives a WM_CREATE
// message, create the contained window by calling
// CContainedWindow::Create
LRESULT OnCreate(UINT uMsg, WPARAM wParam,
LPARAM lParam, BOOL& bHandled)
{
...
m_EditCtrl.Create(m_hWnd, rc, _T("hello"),
WS_CHILD | WS_VISIBLE |
ES_MULTILINE | ES_AUTOVSCROLL);
return 0;
}
...
};
| Hakkında daha fazla bilgi için | Bkz. |
| Denetim oluşturma | Atl eğitimi |
| Atl Windows kullanarak | Atl pencere sınıfları |
| Atl nesne Sihirbazı | Atl proje oluşturma |
| Windows | Windows ve sonraki konu Platform sdk |
| Sınıflara | Pencere yordamı sınıflara Platform sdk |
| Superclassing | Pencere yordamı Superclassing Platform sdk |
# include lt;atlwin.h>
Ayrıca bkz:
CWindow, CWindowImpl, CMessageMap, BEGIN_MSG_MAP, alt_msg_map