窗口子类化和PreSubClassWindow的小问题,望指教

No9_Magician 2006-08-29 08:50:52
今天下午看了一下MSDN上关于子类化的论述,在下有以下几点认识:(不知道对不对,望指教)

1.窗口子类化并不是派生一个窗口类,它只是更改了窗口消息的路由,窗口的消息先通过自定义的WindowProc函数处理后,才传回原来的WindowProc函数。

2.动态子类化(dynamic subclassing)首先需要告诉程序哪个窗口需要子类化,通过调用CWnd::SubClassWindow()或者CWnd::SuuClassDlgItem()来实现。

(问题1:静态子类化又是怎么回事呢?难道动态子类化就是指Instance subclassing,而静态子类化就是指Global subclassing? )

3.子类化的实现需要自定义一个窗口处理函数WindowProc(或者称作subclass function),然后将这个函数的地址传递给SetWindowLong(Instance subclassing)或者SetClassLong(Global subclassing)。

(问题2:如果要实现窗口的子类化,是不是一定需要自定义一个窗口处理函数,然后再调用SetWindowLong\SetClassLong呢?)

(问题3:如果窗口子类化总是需要通过自定义的窗口处理函数和SetWindowLong\SetClassLong来实现,那么如果在一个窗口派生类中重载的PreSubClassWindow函数并不一定总是会起作用,因为这个窗口类的实例不一定会被子类化。是这样吗?重载PreSubClassWindow到底起了什么作用?)
...全文
230 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
No9_Magician 2006-08-31
  • 打赏
  • 举报
回复
还有朋友给点意见吗?多多益善呀
broccoli 2006-08-31
  • 打赏
  • 举报
回复
(问题2:如果要实现窗口的子类化,是不是一定需要自定义一个窗口处理函数,然后再调用SetWindowLong\SetClassLong呢?)
===============================================================
MFC下面好像是要新建个窗口类
然后定义一个对象myWnd
接着myWnd.SubClassWindow(你想子类化的窗口句柄)



(问题3:如果窗口子类化总是需要通过自定义的窗口处理函数和SetWindowLong\SetClassLong来实现,那么如果在一个窗口派生类中重载的PreSubClassWindow函数并不一定总是会起作用,因为这个窗口类的实例不一定会被子类化。是这样吗?重载PreSubClassWindow到底起了什么作用?)

========================================================
我想可能PreSubClassWindow是不一定会起作用吧
但你要是调用了SubClassWindow,它就会起作用了


broccoli 2006-08-31
  • 打赏
  • 举报
回复
帮顶
No9_Magician 2006-08-31
  • 打赏
  • 举报
回复
还有朋友给点意见吗?多多益善呀
No9_Magician 2006-08-30
  • 打赏
  • 举报
回复
不会吧,一天之后还没有人回复,难道是给的分太少?
我顶。。。
希望有热心人帮忙解答
打开链接下载源码: https://pan.quark.cn/s/d85aa9a28238 FreeRTOS,其全称为“Free Real-Time Operating System”,是一款具备开源特质且设计轻巧的实时操作系统(RTOS),主要应用于嵌入式系统领域。该“freertos工程文件以及官方文档.rar”压缩包内含了与FreeRTOS关联的工程文件、官方文档资料以及其他用于移植的文件,是进行FreeRTOS学习与应用的关键性资源。 FreeRTOS的核心特质涵盖任务调度机制、中断处理功能、同步机制设计以及内存管理策略。其中,任务调度机制是其核心功能,借助优先级抢占式调度算法,保障高优先级任务能够获得及时响应。中断处理功能是嵌入式系统中的关键环节,FreeRTOS支持在中断执行环境中开展特定操作,同时确保任务执行状态的安全。同步机制例如信号量、互斥量及事件标志组,主要用于实现任务之间的通信与协调。内存管理部分则负责动态分配和释放内存资源,以满足不同任务的特定需求。 工程文件通常由源代码、配置文件、编译脚本等构成,能够帮助开发者深入理解FreeRTOS的工作原理,并在此基础上进行定制化开发。例如,`FreeRTOSConfig.h`作为FreeRTOS的核心配置文件,允许用户依据目标硬件条件和应用需求调整内核参数,比如任务数量、堆大小等。 官方文档资料是学习FreeRTOS的重要参考资料,其内容详尽地阐述了系统架构、API函数、应用示例等关键信息。通过研读这些文档,开发者可以掌握如何创建任务、配置中断、实现任务间的同步与通信,以及如何对FreeRTOS系统进行调试和优化。 移植文件主要涉及将FreeRTOS部署于不同的微控制器(MCU)或硬件平台之上。每个平...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧