笔记:C++编写窗口程序

编写一个窗口程序,需要知道以下知识:

什么是 事件消息?

Windows中的事件是一个“动作”,这个动作可能是用户操作应用程序时产生的,也有可能是Windows(窗口)自己产生的。

用户动作有:鼠标左键被按下,键盘w键被按下..等等.

而消息,就是用来描述这些“动作”的,比如:

这个动作是什么时候产生的?

哪个应用程序产生的?

在什么位置产生的?

等等..

windows为了能够准确的描述这些信息,提供了一个结构体

typedef stuct tageMSG

{

HWND      hwnd;//windows给我们提供的一个资源,类似窗口身份ID  名词:窗口句柄

UINT         message; //消息类型 鼠标左键还是右键,还是键盘.鼠标移动等等..共400多种

WPRAM    wParam;//附加的信息 进一步详细描述消息类型 根据详细类型可以查MSDN文档

LPARAM    lParam;//附加的信息2 进一步详细描述消息类型 根据详细类型可以查MSDN文档

DWORD    time;//什么时候触发的这个动作

POINT         pt;//坐标  x,y

}MSG,*PMSG

windows必须时刻记录鼠标坐标,动作类型(左键是个类型,右键也是个类型,键盘按键也是个类型),在什么窗口内.

用MSDN查看MSG结构体 里面有成员详细解释

系统消息队列与应用程序消息队列:

 用户输入->事件触发->封装成一个消息结构里->系统队列(消息结构数组)->(系统队列判断是哪个的窗口消息就分给对应的应用程序队列)应用程序队列->写代码 让应用程序从队列里取出MSG消息结构->消息循环判断是否是自己关注的消息,是就进入对应的消息处理函数..不是的就让windows去处理(忽略不管即可)

简洁流程: 事件 MSG 系统消息队列 应用程序消息队列 循环取出消息 处理消息

循环取出消息:

MSG  M

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值