шаблон lt; класTкласTBase= CWindow, класTWinTraits= CControlWinTraits >
клас ATL_NO_VTABLE CWindowImpl: Громадська CWindowImplBaseT < TBase, TWinTraits >
Параметри
T
Ваш клас, отриманих від CWindowImpl.
TBase
Базовий клас новий клас. Базовий клас за замовчуванням є CWindow.
TWinTrait
Клас риси, що визначає стилі для вашого вікна. За замовчуванням використовується CControlWinTraits.
CWindowImpl дозволяє створювати нові вікна або підкласу наявному вікні. Процедура CWindowImplвікно використовує повідомлення карта пряме повідомлення для відповідних обробників.
CWindowImpl::Create створює нове вікно на основі інформації клас вікна управляється CWndClassInfo. CWindowImpl містить DECLARE_WND_CLASS макрос, який означає, що CWndClassInfo буде зареєструвати новий клас вікна. Якщо ви хочете, щоб суперкласу існуючого класу вікна, отримати свій клас з CWindowImpl і включити DECLARE_WND_SUPERCLASS макрос. У цьому випадку, CWndClassInfo буде зареєструвати клас вікна, що на основі існуючого класу, але використовує CWindowImpl::WindowProc. Наприклад
клас CMyWindow: CComControllt;CMyWindow >,...
/ / CComControl походить від CWindowImpl
{
готелю:
// 1. Параметром NULL означає, що буде генерувати ATL
/ / ім'я для суперкласу
// 2. Параметр "Змінити" означає суперкласу
/ / на основі стандартних Windows змінити поле
DECLARE_WND_SUPERCLASS (NULL, "ЗМІНИТИ")
...
};
Примітка Оскільки CWndClassInfo керує інформації для одного вікна класу, кожне вікно створено через екземпляр CWindowImpl буде заснований на ж клас вікна.
CWindowImpl також підтримує вікно subclassing. Метод SubclassWindow надає наявному вікні CWindowImpl об'єкта і змінює порядок вікна на CWindowImpl::WindowProc. Кожен екземпляр CWindowImpl можна підкласу іншого вікна.
Примітка Для будь-якого CWindowImpl даного об'єкта зателефонуйте або Створити або SubclassWindow. Ви не повинні викликати обидва методи на той самий об'єкт.
На додаток до CWindowImplATL забезпечує CContainedWindow створити вікно, що містяться в інший об'єкт.
Базовий клас деструктор (~CWindowImplRoot) гарантує, що вікно пішли, перш ніж знищили об'єкт.
CWindowImpl походить від CWindowImplBaseT, яка випливає з CWindowImplRoot, який в свою чергу, походить від TBase і CMessageMap.
| Для отримання додаткових відомостей про | Див. |
| Створення елементів керування | ATL підручник |
| За допомогою windows в ATL | ATL класи вікон |
| Майстер ATL об'єкта | Створення ATL-проект |
| Windows | Windows і наступні теми у Платформи SDK |
| Subclassing | Вікно процедури Subclassing платформи SDK |
| Superclassing | Вікно процедури Superclassing платформи SDK |
# включити lt;atlwin.h>
Дивіться також