笔记: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结构体 里面有成员详细解释

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

笔记:C++编写窗口程序_第1张图片

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

简洁流程࿱

你可能感兴趣的:(c++)