为什么不让应用程序在抓到消息(通过GetMessage())之后,直接调用窗口函数处理消息呢?

潇潇雨云 2012-12-07 02:20:03
windows的窗口过程函数,也就是向windows注册的窗体类的lpfnWndProc项所指向的函数,都被设计为回调函数呢?

为什么不让应用程序在抓到消息(通过GetMessage())之后,直接调用窗口函数处理消息呢?

侯捷在《深入浅出MFC中》,曾简单提到原因为“除了你需要调用它,有很多时候操作系统也需要调用你的窗口函数(例如当某个消息产生或某个事件发生)。窗口函数设计为callback形式,才能开放出一个接口给操作系统调用。”
我不太明白 ……
...全文
334 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ronal7do 2014-10-21
  • 打赏
  • 举报
回复
dispatchmessage是在winuser.h头文件里定义的!
潇潇雨云 2012-12-07
  • 打赏
  • 举报
回复
明白了,十分感谢。
roger_ding 2012-12-07
  • 打赏
  • 举报
回复
dispatchmessage 不就是系统函数吗,它的代码好象在kerner32.dll里
潇潇雨云 2012-12-07
  • 打赏
  • 举报
回复
窗口函数不是由操作系统调用的吗,dispatchmessage怎么有权调用
roger_ding 2012-12-07
  • 打赏
  • 举报
回复
dispatchmessage的作用就是派发消息,入参是MSG,里面有窗口句柄HWND和消息message,从HWND可以查到窗口过程函数,然后把消息作为入参,直接调用窗口过程函数,等待函数返回后,dispatchmessage也就返回了,然后处理下一条消息
潇潇雨云 2012-12-07
  • 打赏
  • 举报
回复
回1楼:那个dispatchmessage有什么用,他把消息分发给谁了,发完之后流程又是什么……
roger_ding 2012-12-07
  • 打赏
  • 举报
回复
这个很好理解,你的程序在GetMessage()之后调用窗口函数,是在一个进程里,也就是说地址都是共享的,如果是别的进程需要发消息给你,由于不在一个进程,它即使获取你的窗口函数也没用,因为地址根本无法访问,所以这种情况下,只能通过回调这种机制来实现消息的响应 当然还有别的原因,回调有个好处,就是调用方不需要知道具体的函数,只要发消息即可,这样可以降低程序的耦合度,更好的实现模块化
内容概要:本文围绕基于粒子群算法(PSO)的风电与水电(抽水蓄能)联合优化调度问题展开研究,旨在通过智能优化算法实现可再生能源的高效利用与电力系统的经济稳定运行。文中系统阐述了粒子群算法的核心原理及其在电力调度中的适用性,构建了综合考虑风电出力不确定性、抽水蓄能电站调节能力及系统运行约束的联合优化调度模型。采用Matlab进行算法编程与仿真求解,验证了该方法在降低系统综合运行成本、提升新能源消纳水平、增强电网调峰调频能力等方面的优越性能。研究进一步设计了多种对比场景,分析不同调度策略下的系统表现,充分展示了所提模型在应对复杂运行条件时的鲁棒性与实用价值。; 适合人群:具备一定电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事新能源并网调度、电力系统规划与运行等相关领域的工程师; 使用场景及目标:①应用于风电场与抽水蓄能电站的协同优化调度决策支持;②为高比例可再生能源接入的电力系统提供经济可靠的低碳调度方案;③服务于高校及科研院所中关于智能优化算法在能源系统中应用的教学与科研实验; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节与模型构建逻辑,重点关注目标函数设计、约束条件处理及参数设置对优化结果的影响,并通过复现仿真结果来掌握粒子群算法解决复杂非线性调度问题的关键技术要点。

16,550

社区成员

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

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

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