问个初学问题

netmobile 2004-07-31 12:07:10
在网上查到的一句话:“一个窗口过程不经常忽略消息,如果他不处理,它会将消息传回到执行默认的处理。窗口过程通过调用DefWindowProc来做这个处理。窗口过程必须return一个值作为它的消息处理结果。大多数窗口只处理小部分消息和将其他的通过DefWindowProc传递给系统做默认的处理。”

---这里最后一句话,说是将部分消息通过DefWindowProc传递给系统做默认的处理,这里的DefWindowProc是什么,是系统默认的窗口过程?操作系统发给窗口过程的消息还又部分不处理,要通过DefWindowProc返回给操作系统的?这是做什么??
...全文
65 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
milkbread 2004-08-01
up
回复
Rifhvk 2004-07-31
//发现我严重缺分,研究决定每帖必顶!!
回复
netmobile 2004-07-31
谢谢“ huwei001982(編程浪子) ”,能给我讲讲这个过程吗:
1、windows捕获事件,然后将事件转为消息加到系统消息队列,然后windows在一定时候从系统消息队列取出一条消息放到应用程序的线程消息队列,然后DispatchMessage是从应用程序的线程消息队列中取消息并发送给窗口过程的,是吗??
2、“绝大部分的消息都交给操作系统处理, 这个处理函数就是DefWindowProc它是一个系统函数, 是一个 N 长的 switch (){ case...}语句”--那哪些是操作系统处理的,哪些是需要我在窗口过程中自定义处理的?是不是我在窗口过程中有了新的处理定义就覆盖了操作系统对相应的消息处理(或者说操作系统就不执行相应的这些消息处理了)?
3、程序运行过程中什么时候调用DefWindowProc这个函数的?也就是说先交由操作系统处理相关消息,还是先交由应用程序处理相关消息的?
回复
huwei001982 2004-07-31
WINDOW的消息有 N 种, 但应用程序需要自已处理的消息通常很少
绝大部分的消息都交给操作系统处理, 这个处理函数就是DefWindowProc
它是一个系统函数, 是一个 N 长的 switch (){ case...}语句

不过用 MFC 时不用管这些
回复
netmobile 2004-07-31
怎没大虾给偶解释解释啊?!
再问个《windows程序设计》第六章“键盘”的问题。第六章有这么两段话:
-----------------------------------
队列和同步


当使用者按下并释放键盘上的键时,Windows和键盘驱动程序将硬件扫描码转换为格式消息。然而,这些消息并不保存在消息队列中。实际上,Windows在所谓的「系统消息队列」中保存这些消息。系统消息队列是独立的消息队列,它由Windows维护,用于初步保存使用者从键盘和鼠标输入的信息。只有当Windows应用程序处理完前一个使用者输入消息时,Windows才会从系统消息队列中取出下一个消息,并将其放入应用程序的消息队列中。

此过程分为两步:首先在系统消息队列中保存消息,然后将它们放入应用程序的消息队列,其原因是需要同步。就像我们刚才所学的,假定接收键盘输入的窗口就是有输入焦点的窗口。使用者的输入速度可能比应用程序处理按键的速度快,并且特定的按键可能会使焦点从一个窗口切换到另一个窗口,后来的按键就输入到了另一个窗口。但如果后来的按键已经记下了目标窗口的地址,并放入了应用程序消息队列,那么后来的按键就不能输入到另一个窗口。
-----------------------------------
这里第二段中这句话“首先在系统消息队列中保存消息,然后将它们放入应用程序的消息队列,其原因是需要同步。”的“同步”还是不大明白,到底指什么意思?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-07-31 12:07
社区公告

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