Windows程序的入口是哪里?写出Windows消息机制的流程

Windows程序的入口是WinMain()函数。 

Windows应用程序消息处理机制: 

A. 操作系统接收应用程序的窗口消息,将消息投递到该应用程序的消息队列中 

B. 应用程序在消息循环中调用GetMessage函数从消息队列中取出一条一条的消息,取出消息后,应用程序可以对消息进行一些预处理。 

C. 应用程序调用DispatchMessage,将消息回传给操作系统。 

D. 系统利用WNDCLASS结构体的lpfnWndProc成员保存的窗口过程函数的指针调用窗口过程,对消息进行处理

注意:消息映射为什么不是虚函数呢?
答:C++有一个名为vtable的虚函数分发表。如果用虚函数发送消息CWnd将为超过100个消息来申明虚函数,对于没个虚函数,vtable中对应有4个字节,那么应用程序将需要400多个字节的表来支持虚拟消息处理函数。所以为了避免大型的vtable,MFC使用宏来把WINDOWS消息连接到C++成员函数。MFC消息处理程序需要函数原型,函数体和在消息映射中的输入项(宏调用),ClassWizard帮助我们将消息处理程序添加到类中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值