请问各位高手可否给我解释一下什么是句柄和消息?

BillDeng 2002-04-14 01:16:24
我希望可以得到准确的定义和一些助于理解的例子!不胜感谢~
...全文
130 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuanhong 2002-04-25
  • 打赏
  • 举报
回复

Windows消息概述

Windows 应用程序的输入由Windows系统以消息的形式发送给应用程序的窗口。这些窗口通过窗口过程来接收和处理消息,然后把控制返还给Windows。



消息的分类


队列消息和非队列消息

从消息的发送途径上看,消息分两种:队列消息和非队列消息。队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。

这里,对消息队列阐述如下:

Windows 维护一个系统消息队列(System message queue),每个GUI线程有一个线程消息队列(Thread message queue)。


鼠 标、键盘事件由鼠标或键盘驱动程序转换成输入消息并把消息放进系统消息队列,例如WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_CHAR等等。Windows每次从系统消息队列移走一个消息,确定它是送给哪个窗口的和这个窗口是由哪个线程创建的,然后,把它放进窗口创建线程的线程消息队列。线程消息队列接收送给该线程所创建窗口的消息。线程从消息队列取出消息,通过Windows把它送给适当的窗口过程来处理。


除了键盘、鼠标消息以外,队列消息还有 WM_PAINT、WM_TIMER和WM_QUIT。


这些队列消息以外的绝大多数消息是非队列消息。


系统消息和应用程序消息

从消息的来源来看,可以分为:系统定义的消息和应用程序定义的消息。

系统消息ID的范围是从0到WM_USER-1,或0X80000到0XBFFFF;应用程序消息从WM_USER(0X0400)到0X7FFF,或0XC000到0XFFFF;WM_USER到0X7FFF范围的消息由应用程序自己使用;0XC000到0XFFFF范围的消息用来和其他应用程序通信,为了ID的唯一性,使用::RegisterWindowMessage来得到该范围的消息ID。

...............


..............

《MFC深入浅出》里对消息讲解得很不错.
mldnking 2002-04-20
  • 打赏
  • 举报
回复
对象是苹果,句柄是苹果芭,
消息就是你想要干的动作。比如你想吃苹果就想法就是消息,你告诉了vc系统,
他帮你完成了
leecyi 2002-04-20
  • 打赏
  • 举报
回复
句柄:是个对象指针。
tanyajun 2002-04-19
  • 打赏
  • 举报
回复
句柄应该不简单的是指针吧,不过肯定跟指针挂勾
碧蓝右耳 2002-04-16
  • 打赏
  • 举报
回复
先接到消息,然后消息函数来处理,中途要派车派人派文件,就要用句柄
懂了吧
碧蓝右耳 2002-04-16
  • 打赏
  • 举报
回复
句柄就是指针,是钥匙,是把手,是领取器材的许可证和申请表,要找什么就必须用它
消息就是指示,是红头文件,是上头的讲话,接到了就要想办法执行
消息函数就是负责执行的
系统是中央,程序至少也是部级,所以都能发消息,但通常都要系统转发
懂了吧
shaohua 2002-04-16
  • 打赏
  • 举报
回复
这个问题很难回答。楼上两位都很有道理。从不同的角度分析的。
但就楼上两位所说也还不完全。真是只可意会,不能言传。建议
你多看看书。以后就会明白啦。
lanfan 2002-04-16
  • 打赏
  • 举报
回复
句柄-----用于Windows对一些核心资源的管理,如每个窗口都有一个句柄,Windows用这个句柄可以将发给该窗口的消息准确的传递给这个窗口
消息-----Windows是消息驱动的,你点一下鼠标就会产生一个鼠标点击的消息,你移动一下鼠标也会产生一个消息。。。你在Windows中的每个动作几乎都会产生消息,Windows会使当前活动的窗口响应你的消息,你双击一个图标程序就运行了,你点击一个菜单它就执行相应的功能。你编程序时的主要任务就是当用户发出一个消息时你应该做什么。
cplusc 2002-04-14
  • 打赏
  • 举报
回复
句柄---------地址
消息---------预先定义的一些整型常量

16,551

社区成员

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

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

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