แม่แบบ 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: CComControlltCMyWindow >, ...
/ / CComControl มาจาก CWindowImpl
{
สาธารณะ:
// 1. พารามิเตอร์ NULL หมายความว่า ATL จะสร้างตัว
/ / ชื่อสำหรับที่ซุปเปอร์คลาส
// 2. พารามิเตอร์ "แก้ไข" หมายความว่า เป็นซุปเปอร์คลาสที่
/ / ยึดกล่องแก้ไข Windows มาตรฐาน
DECLARE_WND_SUPERCLASS (NULL "แก้ไข")
...
};
หมายเหตุnbsp เนื่องจากCWndClassInfoจัดการข้อมูลสำหรับคลาสหน้าต่างเดียว แต่ละหน้าต่างสร้างผ่านทางอินสแตนซ์ของCWindowImplจะยึดคลาสหน้าต่างกัน(&N)?
นอกจากนี้CWindowImplยังสนับสนุน subclassing หน้าต่าง เมธอดSubclassWindowแนบมีหน้าต่างที่มีอยู่ไปยังวัตถุCWindowImplและการเปลี่ยนแปลงวิธีการหน้าต่างCWindowImpl::WindowProc แต่ละอินสแตนซ์ของCWindowImplสามารถซับคลาสหน้าต่างแตกต่างกัน?
หมายเหตุnbsp สำหรับวัตถุใด ๆCWindowImplกำหนด เรียกตัวสร้างหรือSubclassWindow นอกจากนี้คุณไม่ควรเรียกใช้ทั้งสองวิธีบนวัตถุเดียวกัน(&N)?
นอกจากการCWindowImpl, ATL แสดงCContainedWindowสร้างหน้าต่างอยู่ภายในวัตถุอื่น?
Destructor คลาสพื้นฐานที่ (~CWindowImplRoot) เพื่อให้แน่ใจว่า หน้าต่างหายก่อนวัตถุถูกทำลายไป?
CWindowImplมาจากCWindowImplBaseTซึ่งได้มาจากCWindowImplRootซึ่งจะเห็นได้จากTBaseและCMessageMap?
| สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ | ดู |
| การสร้างตัวควบคุม | ATL Tutorial |
| การใช้ windows ใน ATL | คลาสหน้าต่าง ATL |
| ATL วัตถุตัวช่วยสร้าง | การสร้างโครงการ ATL |
| Windows | Windowsและหัวข้อที่ตามมาในPlatform SDK |
| Subclassing | หน้าต่างกระบวนงาน SubclassingในPlatform SDK |
| Superclassing | หน้าต่างกระบวนงาน SuperclassingในPlatform SDK |
#รวม lt;atlwin.h>
ดูเพิ่มเติม