赞
踩
我想知道win32/mfc/atl
中的子类化.请提供相同的链接.微软
建议你不要子类化控件类
.窗口
负责它提供的控件
,且控件的各个方面
可能不断变化.
如果应用必须子类化窗口
提供的控件,则在发布新版
本的窗口
时,你可能需要更新
该控件.
我想知道上述内容是否表明我无法子类化编辑控件
,即使我已从CEdit
继承子类
,有人可更好地解释或扩展
以下在以下语句?
全局子类
与实例
子类有相同的限制
.
除非确切地知道原始窗口过程
的用法
,应用
不应试为类或窗口
实例使用额外的字节
.如果数据
必须与窗口
关联,应与实例子类
一样使用窗口的属性列表
.
它与MFC
窗口子类化
没有关系,因为MFC
不使用额外的字节
.某些子类化
方案使用额外字节
来存储"this"
指针,但MFC
为此使用外部映射(用CWnd*
关联HWND
).
它意思是,通过指定WNDCLASS::cbClsExtra
和cbWndExtra
及通过GetClassLong[Ptr]
和GetWindowLong[Ptr]
访问来分配
的所谓"额外字节"
.
用来附加与每个窗口或窗口类
相关联的一些信息
.即子类化窗口
时,使用这些额外字节
来存储
你自己的一些信息可能很诱人
,但应抵制该诱惑
,否则会影响该窗口
正常运行的期望数据
.
请改用窗口属性
(见GetProp
和SetProp
).本文并没有说不能子类化控件
,而是说有一些技术
障碍阻止
你这样做.
它只是表明这不好
.因为程序
最终可能依赖特定控件
的实现细节
,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。