问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

CCmdTarget虚拟函数OnCmdMsg

发布网友 发布时间:2024-10-06 15:18

我来回答

1个回答

热心网友 时间:2024-10-24 02:40

在MFC框架中,CCmdTarget类的核心功能之一是其虚拟函数OnCmdMsg,它用于处理和传递命令消息以及更新用户界面对象的状态。该函数原型如下:


OnCmdMsg(
UINT nID,
int nCode,
void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo)



框架的命令消息传递机制主要依赖于OnCmdMsg的实现。命令目标对象是可能或希望处理消息的对象,它对应于一个特定的类。



默认情况下,CCmdTarget在类和基类的消息映射数组中查找与指定命令ID和控制通知代码相匹配的消息处理函数。标准Windows消息不会通过这个函数处理。GetMessageMap这个虚拟函数提供了消息映射入口数组_messageEntries,通过匹配消息ID和通知代码来定位处理函数。



如果没有找到匹配,会继续在基类的消息映射中搜索,直到遍历到CCmdTarget基类。如果仍无匹配,函数返回FALSE,表示无法处理该消息。



派生自CCmdTarget的类可以重写OnCmdMsg,决定是否处理特定命令。如果无法处理,可以通过调用基类的OnCmdMsg,将命令传递给下一个处理目标。例如,CWnd和CDocument等MFC类就可能覆盖这个函数,以实现MFC的标准命令消息传递路径。



应用程序也可以覆盖OnCmdMsg,以自定义命令发送规则。这可以在需要打断发送顺序、或者将命令发送给非默认对象的类中实现。



CCmdTarget类派生于CObject,封装了MFC的消息映射和IDispatch接口。对于希望接收系统事件和窗口消息的类,如文档类和窗口类,通常会从CCmdTarget派生。它还提供了BeginWaitCursor、EndWaitCursor和RestoreWaitCursor等函数,用于在处理耗时操作时显示等待光标,如加载和存储文档时。在处理前后调用BeginWaitCursor和EndWaitCursor,而如果在处理过程中弹出对话框,可能需要调用RestoreWaitCursor来重新设置光标为沙漏形状。




扩展资料

类CCmdTarget是MFC类库中消息映射体系的一个基类,是MFC处理命令消息的基础、核心。消息映射把命令或消息引导给用户为之编写的响应函数。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...二极管 电动车的电瓶因为出于成本考虑,将新旧电瓶混用,因为旧电池内 ... 两个不同容量的蓄电池并联后怎么防止大容量电池向小容量电池放电 工伤后小孩有抚养费吗,会给多少钱 南京工伤死亡子女抚养费标准 邵阳车管所疫情上班吗 2023年验车推迟吗,2023年检车线什么时候上班 全面复工包括黔江车管所不 江宁车管所什么时候复工 疫情期间交警几点下班? 3d和值多少算中奖? java类库函数修改问题 GSLC语言 list提取数组 有什么软件可以借钱还信用卡 搞笑说说短句子笑死人 2021爆笑朋友圈句子 沈阳明基投影机维修?沈阳明基投影机维修站?沈阳千一 小学生超短搞笑萌句 一句话简短幽默可爱的句子 让人笑到飞起的幽默文案 中考成绩怎样查分数? 搞笑又上头社交悍匪的专属文案 借款2000元,一个月利息要168元,那一个月利率是多少呢,怎么算 向银行贷款57万14年还,现在每个月还款4839.74元,那年利率是多少,这个怎 ... 我的勇者5月14日更新公告介绍_我的勇者5月14日更新公告是什么 想做飞鸟来去自由是什么歌 心情车站任贤齐的歌词音译 请教一下贷款二十一万二十年,利息是5.635,一个月还多少钱 侵袭性肺部真菌感染的临床表现 肺部真菌感染基本信息 肺部真菌感染有什么症状 肺部真菌感染很严重吗 ...没开玩笑!微信朋友圈有“4不晒”:已经晒了的要抓紧删除 急性髓系白血病什么原因引起的 怎么能杳到自己走到那了,在那个地方呆了几天,一年都打了多少个电话,都... 天谕谕世封测声望如何获得?做循环任务有声望么? 两平行直线间的距离公式是什么两平行直线间距离公式是什么 我这个配置玩《文明4》老是卡 还说显卡温度过高 不能玩吗?能解决吗... 什么是信托基金结构 领结婚证要准备什么复印件 华硕K50X33IE-SL的显卡性能如何? 大家看看我的旧笔记本能买多少钱 华硕的K50IE 2G内存 2.30CPU 512显卡5... 华硕K50X44Ie-SL华硕K50X44Ie-SL显卡 眼球黄斑病变怎么办 眼睛黄斑病变手术费用 眼底黄斑病变的治疗费用 视网膜病变治疗费用 3月份要到美国访学,求助保险购买 ...MCP79/7A)cpu:英特尔Pentium Dual Core T4400(双核)1G内存 应该... 十寸的笔记本有没有带光驱的?请大家推荐下十寸的笔记本电脑哪些... 派特灵基本介绍 派特灵对hpv的效果